我正在绘制一条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以上没有绘制任何内容。
我知道我可以手动调整轴比例,但我希望能够针对大量变量动态调整,但似乎这种行为是不正确的。因此,我假设我没有正确地使用它。我是不是漏掉了什么?
发布于 2013-02-28 14:06:14
你可以看到y轴的这种奇怪的行为,因为克拉的值是5。这可以通过使用geom_point()来看到。当您使用geom_rug()时,它会查找所有点,并为每个实际值绘制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()和设置参数ylim=将y轴缩放到所需的限制。
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))https://stackoverflow.com/questions/15126613
复制相似问题