将子组标签添加到 ggplot2 中的抖动图中
我有一个像抖动图一样的箱线图:
dt <- rbind(se,cb,cb.se)
qplot(ds, size, data=dt, geom="jitter", colour=root, facets = test ~ .)
我很乐意在图的中间为每个组放置一个摘要标签 - 例如这里的大小总计:
aggregate(list(size=dt$size), list(dt$ds, dt$test), sum)
Group.1 Group.2 size
1 b217 se 9847
2 c10 se 97296
3 c613 se 21633
4 c7 se 207540
...
我尝试使用 + geom_text(aes(x=ds, y=128, label=sum(size)), size=2)
添加标签,但我在每个位置上得到相同的标签 - 如何获得总和只是那部分数据?
编辑: 这就是我现在所处的位置 - 也许我只是走错了方向
data <- rbind(se,cb,cb.se)
labels <-ddply(data, c("ds", "test"), function(df) sum(df$size))
ggplot(data=data, aes(x=ds)) +
geom_jitter(aes(y=size, colour=root)) +
geom_text(data=labels, aes(x=ds, y=600, label=V1), size=3) +
facet_wrap(test ~ .)
此代码不起作用 - 我在某处收到未定义的列选择
错误...。也许是因为有多个 data=
部分?
I have a nearly-boxplot like jitter-plot:
dt <- rbind(se,cb,cb.se)
qplot(ds, size, data=dt, geom="jitter", colour=root, facets = test ~ .)
I'd love to put a summary label for each group in the middle of the plot - for example the size totals here:
aggregate(list(size=dt$size), list(dt$ds, dt$test), sum)
Group.1 Group.2 size
1 b217 se 9847
2 c10 se 97296
3 c613 se 21633
4 c7 se 207540
...
I've tried using + geom_text(aes(x=ds, y=128, label=sum(size)), size=2)
to add labels, but I get the same label on each position - how can I get the sum of just that section of data?
Edit:
Here's where I'm at now - maybe I'm just going in the wrong direction
data <- rbind(se,cb,cb.se)
labels <-ddply(data, c("ds", "test"), function(df) sum(df$size))
ggplot(data=data, aes(x=ds)) +
geom_jitter(aes(y=size, colour=root)) +
geom_text(data=labels, aes(x=ds, y=600, label=V1), size=3) +
facet_wrap(test ~ .)
This code doesn't work - I get an undefined columns selected
error... somewhere. Maybe it's because of the multiple data=
sections?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于您不提供样本数据,我将使用随机数据演示一个解决方案。
创建包含标签数据的数据框。请注意
summarize
的使用。这告诉 ddply 为 data.frame 创建一个新列Since you don't provide sample data, I shall demonstrate a solution using random data.
Create the data frame containing label data. Note the use of
summarize
. This tellsddply
to create a new column to the data.frame看看这里。可能会有帮助
添加直接标签ggplot2 和格子图
Take a look here. It may be helpful
Adding direct labels to ggplot2 and lattice plots