使用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中使用Plant
每Treatment
个值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}}
这样做的正确方法是什么? 谢谢!
答案 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))