8

我将 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

4

1 回答 1

11

你几乎拥有它。只是您需要在ldata数据框中再添加一列,这就是您将要提供的内容facet_grid。(我将 Ypos 更改为 Inf)

注意下面splitter列的作用ldata,以及它是如何使用的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)

产生:

在此处输入图像描述

于 2013-12-06T18:55:51.840 回答