我正在 ggplot2 中使用统计趋势线绘制湖泊数据,geom_abline()并使用趋势函数计算的斜率和截距。我绘制的参数之一传统上用反向 y 轴显示(它是 Secchi 深度,因此反向 y 轴模仿向下看水并在图表下方显示更深的深度)。
添加scale_y_reverse()到绘图中也不会反转 abline。我已经用一些 if-then-else 来解决这个问题,以便在轴反转时传入 -slope 和 -intercept,但这感觉像是一个笨拙的黑客。反转y轴应该反转基于y轴的所有内容,包括ablines、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")
Run Code Online (Sandbox Code Playgroud)
(我也很感激您是否认为这是一个值得发布给 ggplot2 开发人员的错误,或者您是否认为现有行为是在反向轴上绘制的方式 - 以及为什么。)
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |