2016-06-11 123 views
2

我想用ggplot2註釋每個boxplot的平均值。但是,我無法弄清楚如何在各自的盒子中標記符號的符號水平居中(見下圖)。 MWE以供參考。任何幫助將不勝感激。由於ggplot2:stat_summary與geom_boxplot的水平位置

library(ggplot2) 
ggplot(data=mpg, mapping=aes(x=class, y=hwy)) + 
    geom_boxplot(aes(color = drv), outlier.shape = NA) + 
    stat_summary(fun.y = mean, geom = "point", size=2, aes(shape = drv, color = drv)) + 
    theme_bw() 

enter image description here

+0

我想繪製的點是在正確的地方嘗試;只是箱形圖中的線條標記了中位數,並非意味着。如果你在'stat_summary()'的調用中用'median'代替'mean',你會明白我的意思(哈哈)。 – ulfelder

+1

@ulfelder:感謝您的評論。是的,你的意思是「平均」和「中位數」是兩個不同的東西,它們對於相同的數據集可能是不同的。但是,這裏的要點是「手段」的水平位置。 – MYaseen208

+0

哦,你的意思是他們在X軸上的位置,而不是Y軸?在問題中指定「正確定位」的含義可能很好。你想讓他們在盒子中居中? – ulfelder

回答

2

position_dodge()

ggplot(data=mpg, mapping=aes(x=class, y=hwy)) + 
     geom_boxplot(aes(color = drv), outlier.shape = NA) + 
     stat_summary(fun.y = mean, geom = "point", size=2, aes(shape = drv, color = drv), 
        position = position_dodge(width = .75)) + 
     theme_bw() 
+0

感謝@BorisLeroy提供有用的答案。 – MYaseen208