jitter, wenn mehrere Ausreißer im boxplot ggplot2
Ich bin auf der Suche nach einem passenden display zum veranschaulichen verschiedene Eigenschaften innerhalb und zwischen den Schulklassen. Für jede Klasse gibt es nur 15-30 Daten-Punkte (Schülerinnen und Schüler).
Recht, jetzt ich bin Neigung in Richtung einer whisker-weniger boxplot zeigen nur 1.,2. und 3. Quartil + Datenpunkte mehr als z.B. 1 Bevölkerung, SD +/- sample-median.
Diese kann ich tun.
Allerdings - ich muss das Diagramm einige Lehrer, um zu beurteilen, was Sie am meisten mag. Ich möchte vergleichen die Grafik mit einem normalen boxplot. Aber die normalen boxplot sieht das gleiche, wenn es nur ein Ausreißer, oder z.B. 5 Ausreißer auf den gleichen Wert. In diesem Fall wäre ein deal-breaker.
z.B.
test <-structure(list(value = c(3, 5, 3, 3, 6, 4, 5, 4, 6, 4, 6, 4,
4, 6, 5, 3, 3, 4, 4, 4, 3, 4, 4, 4, 3, 4, 5, 6, 6, 4, 3, 5, 4,
6, 5, 6, 4, 5, 5, 3, 4, 4, 6, 4, 4, 5, 5, 3, 4, 5, 8, 8, 8, 8,
9, 6, 6, 7, 6, 9), places = structure(c(1L, 2L, 1L, 1L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L,
2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L,
1L, 2L, 2L, 1L, 2L, 1L), .Label = c("a", "b"), class = "factor")), .Names = c("value",
"places"), row.names = c(NA, -60L), class = "data.frame")
ggplot(test, aes(x=places,y=value))+geom_boxplot()
Hier gibt es zwei Ausreißer an ("ein",9) - aber nur einen "dot" angezeigt.
Also meine Frage: Wie jitter der Ausreißer. Und - welche Anzeige würden Sie vorschlagen, für diese Art von Daten?
InformationsquelleAutor Andreas | 2010-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie redifine die funcition
Dies ist die ad-hoc-Lösung. Natürlich, im Sinne der OOP, sollten Sie erstellen eine sub-Klasse von GeomBoxplot und die Funktion überschreiben. Das ist einfach, weil ggplot2 ist schön.
=== Hinzugefügt, zum Beispiel der sub-Klasse definition ===
dann können Sie mit Ihren sub-Klasse:
Ich habe ein Beispiel vor.
build_accessor
muss ersetzt werden durchnew
jetzt (Stand Juni 2011), undGeomBoxplot
zugegriffen werden muss mitggplot2:::
, aber sonst funktioniert immer noch gut. Vielen Dank!Eigentlich nicht-es scheint, dass Sie brauchen, um zu definieren
geom_boxplot_jitter_outlier
in einer Art und Weise ähnlich zugeom_boxplot
imgeom-boxplot.R
.InformationsquelleAutor kohske
Wie es scheint, akzeptiert die Antwort nicht mehr funktionieren, da ggplot2 wurde aktualisiert.
Nach viel Suche im Netz fand ich das folgende auf: http://comments.gmane.org/gmane.comp.lang.r.ggplot2/3616 -Blick auf Winston Chang ' s Antwort-
Er berechnet die Ausreißer separat mit ddply und dann plotts Sie mit
dass Behinderte die Ausreißer-Ausgabe auf dem geom_boxplot():
Hier ist der vollständige code aus der URL, die oben erwähnt ist:
InformationsquelleAutor Ant
Angesichts der geringen Anzahl der Daten-Punkte, die Sie möchten, zeichnen Sie alle Punkte, die nicht nur die Ausreißer. Dies wird helfen, um herauszufinden, die Verteilung der Punkte in Ihrem boxplot.
Können Sie dies mit der geom_jitter, aber beachten Sie, dass box_plot bereits plot-Punkten für die Ausreißer so um nicht zeigen Sie Sie zweimal, die Sie ausschalten müssen, die Ausreißer Darstellung der boxplots mit
geom_boxplot(outlier.shape = NA)
.InformationsquelleAutor Pablo Marin-Garcia
Nicht das bekommen, was Sie suchen? Die Grenze, wo das zittern beginnt, ist nicht automatisch, aber es ist ein Anfang.
Mit dem Ausreißer.Farbe argument, das ich oben Hinzugefügt, ich glaube, es wird funktionieren.
Offcause - vier Nullen macht eine Menge Unterschied, statt nur drei. Mit position_jitter(w = .1,h=0)) - es Art von look okay - aber es ist offensichtlich, dass ggplot lässt immer noch Raum für die Ausreißer-Punkt. Es ist nicht schöner - aber ich sicher, dass funktioniert 🙂
Ich habe akzeptiert Koshke Antwort. Aber danke noch.
InformationsquelleAutor Greg
Code Aufenthaltsort nicht mehr funktioniert. Für die aktuelle version von ggplot2 ich habe folgende Klasse:
InformationsquelleAutor Viktor Petukhov