在log-log ggplot2中添加一般abline

时间:2014-06-18 14:15:54

标签: r ggplot2

我正在尝试添加一行来分隔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)

1 个答案:

答案 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")

enter image description here