使用ggplot2在对数轴上绘制真实线性关系

时间:2019-04-25 15:02:45

标签: r ggplot2

有没有一种方法可以绘制一条线性关系(或几个线性关系)的线,其中一条轴具有对数刻度,并且该线显示真实的线性关系(即,在实际图形上不是直线) ),如下所示?

excel mockup

以下代码将显示在图中的内容绘制为一条直线,但是由于y轴是对数刻度,因此不会绘制出真正的线性关系。

ggplot(df.m, aes(x, value, colour = variable)) +
  geom_point(alpha = .5, shape = 20) +
  xlab('Index of Multiple Deprivation (2015)') +
  ylab('Average network distance to nearest 2ha+ greenspace (m)') +
  scale_y_log10() +
  geom_smooth(method=lm, se = FALSE)

它产生以下图:

ggplot version

编辑:可复制的示例

ggplot(diamonds[1:5000, ],  aes(x = carat, y = price, colour = cut)) +
  geom_point(alpha = .5, shape = 20) +
  xlim(0.5, 1.5) +
  scale_y_log10(breaks = c(2500, 3000, 3500, 4000), limits = c(2500, 4000)) +
  geom_smooth(method=lm, se = FALSE)

产生以下图:

reproducible diamonds example

如您所见,尽管y轴具有对数刻度,但这些线仍然是字面直线。

0 个答案:

没有答案