2012-11-13 9 views
5

Ich versuche, den Mittelwert (d. H. Den horizontalen Balken) im a-Box-Diagramm mit ggplot() zu zeigen. R fragt nach der y-Achse. Ich bin ein bisschen fest.Wie wird der Medianwert in einem Boxplot in ggplot angezeigt?

p <-structure(list(TYPE = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 3L, 2L, 
3L, 3L, 3L, 3L, 3L, 2L, 3L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 2L, 3L, 3L, 3L, 1L, 2L, 3L, 3L, 2L, 3L, 3L, 3L, 1L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L), .Label = c("PM BUSINESS", 
"PM CONSUMER", "PREPAY"), class = "factor"), TOTALREV = c(52.13, 
53.01, 396.49, 596.52, 0, 33.89, 183.43, 0, 174.67, 120.56, 619.29, 
171, 142.2, 77.14, 16.69, 176.86, 103.79, 799.8, 137.84, 187.84, 
201.05, 16.69, 154.95, 195.98, 17.07, 158.96, 166.86, 8.89, 434.59, 
34.55, 196.97, 783.74, 216.27, 1533.98, 137.6, 52.22, 88.61, 
69.52, 52.18, 368.22, 139.89, 214.22, 163.46, 295.49, 319.73, 
933.91, 199.19, 118.72, 0, 174.99, 141.72, 52.12, 115.25, 106.57, 
106.12, 153.84, 1.45, 4.32, 168.93, 34.76, 249.21, 101.25, 87.69, 
20.62, 0.87, 17.39, 0, 34.5, 131.36, 0, 106.43, 257.45, 0, 0, 
256.63, 466.93, 44.25, 339.15, 71.42, 270.81, 145.85, 670.52, 
187.06, 170.61, 153.59, 21.69, 166.14, 97, 104.4, 517.19, 230.78, 
14.11, 52.33, 398.61, 56.65, 0, 26.02, 0, 154.78, 154.78)), .Names = c("TYPE", 
"TOTALREV"), row.names = 23961:24060, class = "data.frame") 

x6.3 <- qplot(TYPE, TOTALREV, data =p, geom = "boxplot") 
x6.3+ stat_bin(geom="text",aes(x=TYPE,y=TOTALREV,label=TOTALREV),size = 3, hjust = 0.5, vjust = -1.5,position ="identity") 

Antwort

15

Ich glaube nicht, dass stat_bin ist der Weg zu gehen:

library(plyr) 
library(ggplot2) 

p_meds <- ddply(p, .(TYPE), summarise, med = median(TOTALREV)) 

ggplot(p,aes(x = TYPE, y = TOTALREV)) + 
    geom_boxplot() + 
    geom_text(data = p_meds, aes(x = TYPE, y = med, label = med), 
       size = 3, vjust = -1.5) 

enter image description here

Als Randbemerkung, finde ich im Allgemeinen, dass die Menschen weniger verwirrt mit ggplot, wenn sie lernen aufhören zu verwenden qplot.

+4

+ 1 für die Empfehlung weg von 'qplot'. (und um mich um 30 Sekunden zu schlagen) – mnel

+0

Beachten Sie, dass 'vjust' nur von 0 bis 1 definiert ist (siehe obere Antwort unter http://stackoverflow.com/questions/7263849/what-do-hjust-and-vjust-do -wenn-machen-ein-plotten-mit-ggplot) - obwohl 'vjust = -1.5' scheint hier gut zu funktionieren –

Verwandte Themen