Natürlich, warum nicht?
Hier ist ein Beispiel (eines von Dutzenden, das ich mit einer einfachen Google-Suche gefunden habe):
(Bildquelle ist das Mess Usability Blog, hier .)
Ich habe Mittelwerte, Mittelwerte plus oder minus einer Standardabweichung, verschiedene Quantile (wie Median, Quartile, 10. und 90. Perzentile) auf verschiedene Arten angezeigt.
Anstatt eine Linie quer über das Diagramm zu ziehen, können Sie Informationen am unteren Rand markieren - wie folgt:
Es gibt ein Beispiel (ein von vielen zu finden) mit einem boxplot über die Oberseite statt am Boden, hier .
Manchmal markieren Leute in den Daten:
(Ich habe die Datenpositionen leicht verwackelt, weil die Werte auf ganze Zahlen gerundet wurden und Sie die relative Dichte nicht gut sehen konnten.)
Es gibt ein Beispiel dieser Art in Stata auf dieser Seite (siehe das dritte hier ).
Histogramme sind besser mit ein paar zusätzlichen Informationen - sie können von sich aus irreführend sein
Sie müssen nur darauf achten, zu erklären, woraus Ihr Grundstück besteht! (Sie möchten zunächst einen besseren Titel und eine bessere Bezeichnung auf der x-Achse als hier. Außerdem eine Erklärung in einer Bildunterschrift, in der erläutert wird, was Sie darauf markiert haben.)
-
Eine letzte Handlung:
-
Meine Grundstücke werden in R erstellt.
Bearbeiten:
Wie vermutet, abline(v=mean...
wurde @gung verwendet, um die Mittellinie über den Plot rug
zu zeichnen, und wurde verwendet, um die Datenwerte zu zeichnen (obwohl ich tatsächlich verwendet habe, rug(jitter(...
weil die Daten auf ganze Zahlen gerundet wurden).
Hier ist eine Möglichkeit, das Boxplot zwischen dem Histogramm und der Achse zu erstellen:
hist(Davis2[,2],n=30)
boxplot(Davis2[,2],
add=TRUE,horizontal=TRUE,at=-0.75,border="darkred",boxwex=1.5,outline=FALSE)
Ich werde nicht auflisten, wofür alles da ist, aber Sie können die Argumente in help ( ?boxplot
) überprüfen , um herauszufinden, wozu sie dienen, und selbst damit spielen.
Es ist jedoch keine generelle Lösung - ich kann nicht garantieren, dass es immer so gut funktioniert wie hier (beachten Sie, dass ich die Optionen at
und boxwex
* bereits geändert habe ). Wenn Sie keine intelligente Funktion schreiben, die sich um alles kümmert, müssen Sie darauf achten, was alles tut, um sicherzustellen, dass es das tut, was Sie wollen.
Hier erfahren Sie, wie Sie die von mir verwendeten Daten erstellen (ich habe versucht zu zeigen, wie Theil-Regression tatsächlich mit mehreren einflussreichen Ausreißern umgehen kann). Es waren zufällig Daten, mit denen ich spielte, als ich diese Frage zum ersten Mal beantwortete.
library("car")
add <- data.frame(sex=c("F","F"),
weight=c(150,130),height=c(NA,NA),repwt=c(55,50),repht=c(NA,NA))
Davis2 <- rbind(Davis,add)
* - ein angemessener Wert für at
ist etwa das -0,5-fache des Wertes von boxwex
; Das wäre eine gute Voreinstellung, wenn Sie eine Funktion schreiben würden, um dies zu tun. boxwex
müsste in einer Weise skaliert werden, die sich auf die y-Skala (Höhe) des Boxplots bezieht; Ich würde vorschlagen, dass das 0,04- bis 0,05-fache der oberen y-Grenze oft in Ordnung ist.
Code für das marginale Stripchart:
hist(Davis2[,2],n=30)
stripchart(jitter(Davis2[,2],amount=.5),
method="jitter",jitter=.5,pch=16,cex=.05,add=TRUE,at=-.75,col='purple3')