我正在使用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开发人员的错误,或者您认为现有行为是在反转轴上绘制的方式 - 以及为什么。)