2

我正在画一条geom_smooth线,想加一块地毯。y 可变性远大于平均值,因此当仅绘制平滑线时,y 尺度会从实际数据范围减小。当我在底部添加地毯时,它会重新调整 y 轴的比例,就好像 y 轴上也有地毯一样,因此很难看到平滑线的关系。

例子:

ggplot(diamonds, aes(y=carat, x=price, color=cut)) + 
    geom_smooth(se=F, method='lm')

以上将 y 轴缩放到大约 0 到 3 的范围。

仅将地毯添加到底部:

ggplot(diamonds, aes(y=carat, x=price, color=cut)) + 
        geom_smooth(se=F, method='lm') + geom_rug(sides='b')

y 轴现在放大到 5,即使没有在 3 以上绘制。

我知道我可以手动调整轴刻度,但我希望能够为大量变量动态地执行此操作,而且这种行为似乎是不正确的。因此,我假设我使用不正确。有什么我想念的吗?

4

1 回答 1

2

由于克拉值最多为 5,因此您会得到 y 轴的这种奇怪行为。这可以通过使用geom_point(). 当您使用geom_rug()它时,它会查看所有点并为每个实际值绘制地毯。设置sided="b"只是隐藏 y 侧的地毯,但该侧用于地毯的空间保持不变。

ggplot(diamonds, aes(y=carat, x=price, color=cut)) + 
  geom_point() + geom_smooth(se=F, method='lm') + geom_rug()

在此处输入图像描述

coord_cartesian()您可以使用和设置参数将 y 轴缩放到所需的范围ylim=

ggplot(diamonds, aes(y=carat, x=price, color=cut)) + 
  geom_smooth(se=F, method='lm') + geom_rug(sides='b')+
   coord_cartesian(ylim=c(0,3))
于 2013-02-28T06:06:13.737 回答