在这个箱线图中我们可以看到平均值但是我们怎么能在每个箱形图的每个平均值上都有图表上的数值?
ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() +
stat_summary(fun.y=mean, colour="darkred", geom="point",
shape=18, size=3,show_guide = FALSE)
Run Code Online (Sandbox Code Playgroud) 我有两个分类因素('Habitat'和'Locality')和一个连续变量(T).'Habitat'有两个级别,'Locality'有八个级别.我想更改默认胡须来代表SE,并将中位数改为每个箱图的均值.有没有办法做到这一点,并在绘图时考虑两个分类因素?提前谢谢了.
这就是我用boxplot ggplot的默认设置所做的,显示了具有中间间隔的第一和第三个四分位数.
ggplot(data,aes(x=Locality,y=T)) +
geom_boxplot(aes(fill=interaction(Habitat,Locality),
group=interaction(factor(Habitat),Locality)),
outlier.shape=1,outlier.size=3) +
theme_bw() +
theme(
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
axis.line=element_line(colour='black'),
legend.position='none',
axis.text.x=element_text(angle=90,hjust=1,size=12)) +
scale_y_continuous('T') +
xlab('Locality')
Run Code Online (Sandbox Code Playgroud) 出于某种愚蠢的原因,我需要创建一个箱线图,其中的中线是平均值而不是中位数。我已经检查了stackoverflow,并找到了添加平均线的示例,但并不完全是我需要的。我尝试使用stat_smooth但没有骰子。有任何想法吗?
下面的代码:
dust <- c(4.5, 3.7, 5, 5.2, 8.5, 6.6, 4.7, 5, 5.7, 4.3, 2.3, 7.6, 5.2,
6, 8.7, 7.5, 7.7, 11, 9, 6.5, 8.7, 5, 2.2, 7.5, 7.5, 3.5)
wind <- c("Present", "Absent", "Absent", "Absent", "Absent", "Absent",
"Absent", "Absent", "Absent", "Present", "Absent", "Absent",
"Present", "Present", "Absent", "Absent", "Absent", "Absent",
"Absent", "Present", "Absent", "Present", "Absent", "Absent",
"Absent", "Present")
df <- data.frame(dust,wind)
plot <- ggplot(data=df,aes(x=wind,y=dust))+geom_boxplot()+stat_smooth()
plot
Run Code Online (Sandbox Code Playgroud)