注释一个多面geom_point

时间:2016-10-21 16:14:33

标签: r plot ggplot2

使用ggplot2,我想注释我的多面geom_pont图:我正在为每个植物绘制一些数据以获得2个参数,并且我想用每个植物的种群大小来绘制每个多面图。以下是我的数据的类似示例。 允许CO2数据集的子集使示例更相关。我计算吸收量高于20的植物数量并重新命名该列:

require(plyr)
require(dplyr)
require(ggplot2)

CO2_mod<-subset(CO2,uptake>20)
COUNT<-ddply(.data=CO2_mod,
         .variable=.(Plant,Treatment),
         .fun=count)
names(COUNT)[3] <- c("PopSize")

以下是基于治疗的分面图的代码:

p1<-ggplot(CO2_mod, aes(x=Plant, y=uptake))
p2<-p1+geom_point(aes())+
  facet_grid(Treatment~., scales="free")
p2

现在,我想在PopSize df中使用PlantTreatment个值COUNT和每个y<-max(CO2_mod$uptake)+1 COUNT<-mutate(COUNT,y=paste0(y)) p2<-p1+geom_point(aes())+ facet_grid(Treatment~., scales="free")+ geom_text(data=COUNT, aes(x=Plant, y=y, label=PopSize), colour="black") p2 注释每个多面图。 我试过这段代码没有成功:

Error: Discrete value supplied to continuous scale

错误警告显示:{{1}}

这样做的正确方法是什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

检查COUNT表明y是一个字符向量:

str(COUNT)
# 'data.frame': 10 obs. of  4 variables:
#  $ Plant    : Ord.factor w/ 12 levels "Qn1"<"Qn2"<"Qn3"<..: 1 2 3 4 5 6 7 8 9 12
#  $ Treatment: Factor w/ 2 levels "nonchilled","chilled": 1 1 1 2 2 2 1 1 1 2
#  $ PopSize  : int  6 6 6 6 6 6 5 6 5 2
#  $ y        : chr  "46.5" "46.5" "46.5" "46.5" ...

如果我们修改COUNT以便y为数字:

COUNT<-mutate(COUNT,y=as.numeric(y))

我们得到这个情节: enter image description here