如果您阅读ggplot
的{{1}} help,则会看到:
stat_function理解以下美感(必需 美学以粗体显示):
- 组
- y
但是没有如何使用它的示例。
就我而言,我想访问自定义函数中的“组” ae。这是我不幸的尝试(只能绘制一条曲线,而不是每组绘制1条曲线):
stat_function
奇怪的是,我无法使调试器在df = data.frame(A=1:10, B=rep(seq(1,1.8,by=0.2), 2),
myGroup=c(rep("Group1", 5), rep("Group2", 5)))
log.test = function(x, data, ...) {
y = log(data$A + x*data$B)
return(y)
}
ggplot(df) +
xlim(0,50) + ylim(0,50) +
labs(x="time", y="Y", color="Group") +
stat_function(aes(group=myGroup), fun=log.test, args=list(data=df))
内部运行,因此我不知道哪个变量可用。
请注意,这将与log.test
而非geom_abline(aes(intercept=A,slope=B,color=myGroup))
完美配合。
我在这里可能有一个很大的误解,但是我找不到它。
答案 0 :(得分:0)
尝试一下:
df = data.frame(A=1:10, B=rep(seq(1,1.8,by=0.2), 2),
myGroup=c(rep("Group1", 5), rep("Group2", 5))) #you don't even need to define df here because you're passing all the arguments inside mapply
log.test = function(x,A,B) {
y = log(A + x*B)
return(y)
}
ggplot(data.frame(x = c(0, 50)), aes(x)) +
mapply(function(A, B, myGroup) {
stat_function(fun = log.test, args = list(A = A, B = B), col = myGroup)
},
# enter A, B, and colors here
A = c(0, 10),
B=rep(seq(1,1.8,by=0.2), 2),
myGroup=c(rep("red", 5), rep("green", 5)))