我正在尝试为我使用and函数geom_text
生成的一系列 ggplot添加选择文本。本质上,我正在为每个包含 3 条曲线的图创建一个 ggplot 每个 - 每个图一个。lapply
split
Component.name.x
group.name
因此,作为我的数据框(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 每次抓取一次Slope
并将其粘贴到带有相应曲线的图形上。到目前为止,我只设法为每个图(sigh)上的所有曲线最终得到 y=mx+b ,或者将 y=mx+b 文本粘贴在同一个图上很多次重复。Intercept
group.name
我一直在尝试做的(但不知道是否可能)是让 R 要么认为有一个数据子集包含Slope
andIntercept
仅一次并且它匹配 by group.name
,要么使用grep
orsubset
以某种方式拉数据。也许是这样的(但这不起作用):
geom_text(data=working2.df, grep("1A", working2.df$group.name)),
aes(label=paste("y=", Slope[1], "x+", Intercept[1], sep=""))
有人认为他们可以帮助解决这个问题并成为 ggplot 英雄吗?!