R-ggplot2:geom_abline不会使用scale_y_reverse进行翻转

时间:2017-12-06 18:49:50

标签: r ggplot2

我正在使用geom_abline()绘制带有统计趋势线的ggplot2中的湖泊数据,以及趋势函数计算的斜率和截距。我正在绘制的参数之一传统上显示为反转的y轴(它的Secchi深度,因此反转y轴模拟俯视水面并在图形上显示更深的深度)。

scale_y_reverse()添加到绘图中也不会反转abline。我已经解决了一些if-then-else传递-slope和-intercept当轴被反转时,但感觉就像一个笨拙的黑客。反转y轴应该基于y轴反转所有内容,包括斜体,hlines等以及数据。有没有人有更优雅的解决方案?

这是使用mtcars数据集的一些可重现的代码。当比例反转时,蓝线仍然以正斜率和截距绘制,因此它不再在图表上。我可以使用-slope和-intercept绘制红线。

data(mtcars)

p<-ggplot(data=mtcars,aes(x=mpg,y=disp))+
  geom_point()+
  geom_abline(slope=12,intercept=100,color="blue")

p

p+scale_y_reverse()

p+scale_y_reverse()+
  geom_abline(slope=-12,intercept=-100,color="red")

(我也非常感谢您是否认为这是一个值得发布给ggplot2开发人员的错误,或者您认为现有行为是在反转轴上绘制的方式 - 以及为什么。)

0 个答案:

没有答案