gpt4 book ai didi

r - 为什么 geom_abline 不尊重 scales_x_reverse?

转载 作者:行者123 更新时间:2023-12-04 10:38:15 24 4
gpt4 key购买 nike

我一直在为 geom_abline 苦苦挣扎与 scale_x_reverse 结合使用时的命令.

例如,以下代码在标识之后创建 10 个点的图。我可以用 scale_x_reverse 反转 x 轴,但是当我使用 geom_abline 添加身份时红色标识线没有反转。

ggplot(data.frame(x=seq(1,10),y=seq(1,10))) + 
geom_point(aes(x=x,y=y)) +
geom_abline(color="red") +
scale_x_reverse(limits=c(10,-10)) +
scale_y_continuous(limits=c(-10,10)) +
ggtitle("I would expect the red line to be on top of the points")

看来 geom_abline绘制一条 intercept=0, slope=1 的线,但不尊重尺度变换。

作为一种解决方法,我知道我可以强制斜坡做我想做的事:
ggplot(data.frame(x=seq(1,10),y=seq(1,10))) + 
geom_point(aes(x=x,y=y)) +
geom_abline(intercept=0, slope=-1, color="red") +
scale_x_reverse(limits=c(10,-10)) +
scale_y_continuous(limits=c(-10,10)) +
ggtitle("I would expect the red line to be on top of the points")

我找到了这个 geom_abline行为令人困惑,我不明白以这种方式实现的原因。鉴于ggplot的良好设计,我相信一定有很好的逻辑理由,但我一直无法理解。

任何人都可以向我解释一下吗?

最佳答案

所以答案是这只是一个错误。它与 problem 有关在 geom_segment .当在 aes 中指定 aestetics 时它起作用,但并非如此。

ggplot(data.frame(x=seq(1,10),y=seq(1,10))) + 
geom_point(aes(x=x,y=y)) +
scale_x_reverse() +
geom_segment(x = -10, xend=10, y=-10, yend=10, color='blue') +
geom_segment(data = data.frame(x = -10, xend=10, y=-10, yend=10),
aes(x=x, y=y, xend=xend, yend=yend),
color='red')

problem with geom_segment

然而,使用 geom_abline 似乎有一个更普遍的问题。 , geom_hline , geom_vline连同秤。见 here想要查询更多的信息。

关于r - 为什么 geom_abline 不尊重 scales_x_reverse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28603078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com