nix*_*box 20 r ggplot2 boxplot
我有一个显示多个盒子的箱线图.我想连接每个盒子的平均值和一条线.箱形图默认不显示均值,而中间线仅表示中位数.我试过了
ggplot(data, aes(x=xData, y=yData, group=g))
+ geom_boxplot()
+ stat_summary(fun.y=mean, geom="line")
Run Code Online (Sandbox Code Playgroud)
这不起作用.
有趣的是,干嘛
stat_summary(fun.y=mean, geom="point")
Run Code Online (Sandbox Code Playgroud)
绘制每个框中的中间点.为什么"排队"不起作用?
这样的东西,但使用ggplot2,http://www.aliquote.org/articles/tech/RMB/c4_sols/plot45.png
Ber*_*iss 31
那是你在找什么?
library(ggplot2)
x <- factor(rep(1:10, 100))
y <- rnorm(1000)
df <- data.frame(x=x, y=y)
ggplot(df, aes(x=x, y=y)) +
geom_boxplot() +
stat_summary(fun.y=mean, geom="line", aes(group=1)) +
stat_summary(fun.y=mean, geom="point")
Run Code Online (Sandbox Code Playgroud)
更新:
关于设置组的一些澄清= 1:我认为我在Hadley Wickham的书" ggplot2:用于数据分析的优雅图形 "中找到了解释.在第51页他写道:
不同层上的不同组.
有时我们希望根据不同的聚合级别绘制摘要.不同的层可能具有不同的组美学,因此一些层显示单独的级别数据,而其他层显示更大的组的摘要.
在前面的例子的基础上,假设我们想要根据所有男孩的年龄和身高,为刚刚创建的情节添加一条平滑线.如果我们使用相同的分组来表示我们用于线的平滑,我们得到图4.4中的第一个图.
p + geom_smooth(aes(group = Subject),method ="lm",se = F)
这不是我们想要的; 我们无意中为每个男孩添加了一条平滑的线条.这个新图层需要不同的组审美,group = 1,因此新行将基于所有数据,如图中的第二个图所示.修改后的图层如下所示:
p + geom_smooth(aes(group = 1),method ="lm",size = 2,se = F)
[...]在平滑层中使用aes(group = 1)符合所有男孩的最佳拟合线."
| 归档时间: |
|
| 查看次数: |
23637 次 |
| 最近记录: |