我正在尝试使用geom_text
为我使用lapply
和split
函数生成的一系列ggplots添加选择文本。基本上我创建一个ggplot每Component.name.x
与每个这些情节包含3条曲线 - 每个group.name
一个。子集或Grep用于在R中选择性粘贴使用Geom_Text
所以作为什么我的数据帧(working2.df)一种看起来像一个缩短的例子:
group.name Component.name.x TCAmount Ratio Slope Intercept
1A-Alprazolam Alprazolam 0.0 0.05 0.5 0.4
1A-Alprazolam Alprazolam 1.5 0.07 0.5 0.4
1A-Alprazolam Alprazolam 3.1 0.08 0.5 0.4
1A-Alprazolam Alprazolam 6.25 0.10 0.5 0.4
2A-Alprazolam Alprazolam 0.0 0.06 0.4 0.3
2A-Alprazolam Alprazolam 1.5 0.08 0.4 0.3
2A-Alprazolam Alprazolam 3.1 0.09 0.4 0.3
2A-Alprazolam Alprazolam 6.25 0.10 0.4 0.3
1B-Alprazolam Alprazolam 0.0 0.05 0.5 0.6
1B-Alprazolam Alprazolam 1.5 0.08 0.5 0.6
1B-Alprazolam Alprazolam 3.1 0.10 0.5 0.6
1B-Alprazolam Alprazolam 6.25 0.11 0.5 0.6
1A-Codeine Codeine 0.0 0.10 0.5 0.6
1A-Codeine Codeine 1.5 0.30 0.5 0.6
1A-Codeine Codeine 3.1 0.41 0.5 0.6
1A-Codeine Codeine 6.25 0.62 0.5 0.6
2A-Codeine Codeine 0.0 0.09 0.6 0.7
2A-Codeine Codeine 1.5 0.29 0.6 0.7
2A-Codeine Codeine 3.1 0.40 0.6 0.7
2A-Codeine Codeine 6.25 0.62 0.6 0.7
1B-Codeine Codeine 0.0 0.09 0.6 0.5
1B-Codeine Codeine 1.5 0.28 0.6 0.5
1B-Codeine Codeine 3.1 0.41 0.6 0.5
1B-Codeine Codeine 6.25 0.61 0.6 0.5
目前我使用下列绘图数据:
plotIntra<-function(working2.df){
ggplot(working2.df,aes(x=TCAmount,y=Ratio, group=group.name, colour=group.name))+
geom_smooth(method=lm, level=0.95, se=FALSE, aes(colour=group.name))+
theme_bw()+
ggtitle(working2.df$Component.name.x[1])+
xlab("Amount (ng/mL)") +ylab("Response Ratio")+
expand_limits(y=0)+
geom_text(data=working2.df, aes(label=paste("y=", Slope[1], "x+", Intercept[1], sep="")))
}
lapply(split(working2.df, working2.df$Component.name.x), function(x) try(plotIntra(x)))
我希望R可以按group.name
分别抓取每个Slope
和Intercept
一次,并将其粘贴在具有相应曲线的图上。到目前为止,我只设法以y = mx + b结束每个绘图上的所有曲线(叹息),或者让y = mx + b文本在同一图上粘贴许多重复次数。
我一直在努力做的(但不知道是否有可能)是使[R要么认为是包含Slope
和Intercept
只有一次数据的一个子集,它通过匹配group.name
,或以某种方式使用grep
或subset
来提取数据。也许是这样的(但不工作):
geom_text(data=working2.df, grep("1A", working2.df$group.name)),
aes(label=paste("y=", Slope[1], "x+", Intercept[1], sep=""))
任何人都认为他们可以在这方面帮助,是一个ggplot英雄?
那伟大工程。它确实在图例中的子弹点上添加了字母“a”?这可以删除吗?我也知道有关于在plot上移动geom_text的说明,但是您会知道如何移动已粘贴的行,因为我不确定当您使用聚合然后粘贴时单个文本的“对象名称”是什么它?谢谢! –
从另一篇文章中发现(http://stackoverflow.com/questions/2409357/how-to-nicely-annotate-a-ggplot2-manual)show_guide = F添加到geom_text从项目符号点删除文本。仍然在寻找帮助来移动图形周围的文本! –
我现在注意到“mean”实际上是计算由聚合生成的子集的平均斜率和截距 - 因此它为每一行绘制了相同的y = mx + b方程。我想显示表中给出的每行的y = mx + b等式 - 而不是平均值。是否可以使用另一个函数来循环显示斜率和x-ints以进行绘图? –