我正在尝试添加一行来分隔ggplot2中的部分数据。遵循这个主题: Adding linear model abline to log-log plot in ggplot
我试过
d = data.frame(x = 100*rlnorm(100), y = 100*rlnorm(100))
ggplot(d, aes(x, y)) + geom_point() +
geom_abline(intercept = 100, slope = -1, col='red') +
scale_y_log10() + scale_x_log10()
但它没有绘制线条。请注意,旧的情节方法得到了好处:
plot(d$x, d$y, log='xy')
abline(a = 100, b=-1, col='red', untf=TRUE)
答案 0 :(得分:1)
这可能不是最优雅的解决方案,但是当我将它们添加到绘图中时,我通常会为预测定义一个单独的数据框。我知道在很多方面将模型规范添加为绘图的一部分会更快,但我真的很喜欢将它作为一个单独的对象的灵活性。以下是我在这种情况下的想法:
d = data.frame(x = 100*rlnorm(100), y = 100*rlnorm(100))
p = ggplot(d, aes(x,y)) + geom_point() + scale_x_log10() + scale_y_log10()
pred.func = function(x){
100 - x
}
new.dat = data.frame(x = seq(from = 5, to = 90))
new.dat$pred = pred.func(new.dat$x)
p + geom_line(aes(x = x, y = pred), data = new.dat, col = "red")