geom_text 在所有方面写入所有数据
Posted
技术标签:
【中文标题】geom_text 在所有方面写入所有数据【英文标题】:geom_text writing all data on all facets 【发布时间】:2013-12-24 02:23:28 【问题描述】:我将 ggplot 与 facet_grid 一起使用,我想在每个方面指出每个方面的观察次数。我遵循许多网站上提供的示例,但是当我让它写任何东西时,它会在所有四个图上写下所有四个观察数字。
这里是 geom_text 图层命令: geom_text(data=ldata, aes(x=xpos, y=ypos, label=lab, size=1), group=NULL, hjust=0, parse=FALSE)
并且 ldata 是一个数据框,列出了每个图上的坐标 (xpos, ypos) 和观察次数 (lab)。它在绘图的正确位置打印数字,但在所有四个绘图上,所有四个都写在彼此的顶部。我不知道我做错了什么。
数据:
xpos ypos 实验室
1 10 1.35 378
2 10 1.35 2
3 10 1.35 50
4 10 1.35 26
【问题讨论】:
【参考方案1】:你几乎拥有它。只是您需要在ldata
数据框中再添加一列,这就是您将提供给facet_grid
的内容。 (我把 Ypos 改成了 Inf)
注意下面ldata
中splitter
列的作用,以及它在facet_grid
中的使用方式
xpos <- c(10,10,10)
ypos <- c(Inf,Inf,Inf)
lab <- c(378,2,50)
splitter <- c(1:3)
ldata <- data.frame(xpos, ypos, lab, splitter)
ggplot(mtcars) + geom_bar(aes(x=cyl)) + facet_grid(~splitter) +
geom_text(data=ldata, aes(x=xpos, y=ypos,
label=lab, size=1),
vjust=2, parse=FALSE)
产生:
【讨论】:
优秀。做到了。我下面的例子没有提到这一点。谢谢,拉姆! 好的,谢谢。这意味着您已“接受”答案并将问题显示为已回答。以上是关于geom_text 在所有方面写入所有数据的主要内容,如果未能解决你的问题,请参考以下文章
ByteBuffer:写入,然后回到缓冲区的开头并在之前写入的所有数据之前写入(前置?)