我正在绘制一条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 06: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
复制相似问题