很抱歉这个例子不太好,但它确实突出了重点。
mtcars$tran <- factor(mtcars$am, labels=c("Man","Aut"))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_smooth(aes(colour=tran))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_point(aes(colour=tran))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_point(aes(colour=tran)) + geom_smooth(aes(colour=tran))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_smooth(aes(colour=tran)) + scale_y_continuous(limits=c(12,60))
我想要做的是绘制一条平滑曲线,但通过限制y轴的比例来“放大”。然而,似乎ggplot在计算平滑曲线时排除了任何超出比例限制的数据。是的,这似乎很合理,但我该如何看到我想看到的内容呢?在我的真实数据中,(原始)y值的范围在5到14之间,但平滑曲线完全位于7到9之间。因此,在顶部有很多空白空间。当我将其设置为c(7,9)时,它不再使用超出该范围的点来计算平滑曲线,因此我得到了不同的曲线。我无法提供我的数据,但您可以在此示例中查看此内容。请注意,在最后一个图中,删除了两个点,并且“Man”曲线的后半部分与原始图形中的曲线不同。
问题:
如果scale_y_continuous限制用于构建平滑曲线的数据值(逻辑),那么如何使用所有数据绘制曲线,然后“放大”它(相对于y轴)?
如果不清楚,请告诉我。
谢谢
geom_smooth
的默认缩放将在下一个版本中更改(应该会在圣诞节/新年左右发布)。例如,请参见此处:https://dev59.com/tlzUa4cB1Zd3GeqP3nkX - Xu Wang