我是ggplot2的初学者--从我开始使用它到现在才4天。所以,如果这个问题听起来太基本,我很抱歉。我很感激你的指导--我已经为这个问题挣扎了一个小时了。
我正在试验使用geom_abline(),如下所示:
p <- ggplot(mpg, aes(cty, hwy)) + geom_point()
p + geom_abline() + facet_wrap(~cyl)这在所有四个面图中都可以看到一条参考线,如下所示:

后来,我使用了另一个相关的数据集mtcars来查看geom_abline()发生了什么。
p <- ggplot(mtcars, aes(wt, mpg)) + geom_point()
p + geom_abline() + facet_wrap(~cyl)然而,当我运行这个命令时,我没有看到非常令人惊讶的geom_abline().,我在帮助文件中找到了类似版本的上述命令,它说"geom_abline()超出了范围“
虽然我知道“超出范围”是什么意思,但是我如何知道在特定的数据集中,abline()是否超出了范围?我可以通过强制它使用特定的斜率和拦截来覆盖它,但是我会认为这是一种黑客攻击。在看到输出后修改代码。有没有办法让我知道geom_abline()在幕后发生了什么?
这是我得到的没有任何abline()s的图

如果有任何想法我会很感激。我真的很困惑。
发布于 2016-08-29 01:35:10
如果不提供任何参数,geom_abline()将使用默认值intercept = 0和slope = 1。
ggplot(mpg, aes(cty, hwy)) + geom_point() + geom_abline() + lims(x = c(0,35), y = c(0,50))
ggplot(mtcars, aes(wt, mpg)) + geom_point() + geom_abline() + lims(x = c(0,6), y = c(0,35))


发布于 2016-08-29 01:36:10
第一地块和第二地块之间的差异,就and的存在而言,并不是由数据集中的差异决定的。你问:
如何知道在特定数据集中,abline()是否超出范围?
它实际上取决于在美学中抛出的两个变量的比例(即两个映射变量)。如果您在脚本中仔细注意到绘制mpg数据,那么您将hwy与city进行比较。让我们仔细研究其中的每一个:
range(mpg$hwy)
[1] 12 44
range(mpg$cty)
[1] 9 35正如您所看到的,变量的范围有很大的重叠。现在让我们看一下第二幅图中使用mtcars数据映射的两个变量- -mpg和wt
range(mtcars$mpg)
[1] 10.4 33.9
range(mtcars$wt)
[1] 1.513 5.424在这里,您可以看到零重叠,这就是为什么您在如下所示的图形中看不到它的原因:

现在,让我们使用范围内但从mtcars数据集中提取的数据来测试范围的概念,以显示它不是数据集,而是要映射的变量的重叠范围。在mtcars中,让我们继续使用mpg,然后在其范围内选择另一个变量-how bout qsec?让我们检查一下它们的范围:
range(mtcars$mpg)
[1] 10.4 33.9
range(mtcars$qsec)
[1] 14.5 22.9好的,这里肯定有一些重叠。让我们映射一下,看看会发生什么:
p <- ggplot(mtcars, aes(qsec, mpg)) + geom_point() + geom_abline() + facet_wrap(~cyl)

一些额外的确认它不依赖于数据集。让我们反转我们的工作流程,然后在mpg数据集中识别不重叠的对。在这里,我们应该不会看到任何插队。让我们继续使用hwy,并将其与displ进行比较。请相信我的话,它们不重叠。
ggplot(mpg, aes(displ, hwy)) + geom_point()+geom_abline() + facet_wrap(~cyl)

正如其他人所指出的(@ others 44),geom_abline()默认设置为0,斜率为1)。
试着将geom_smooth()用于适合的线路。
p <- ggplot(mpg, aes(cty, hwy)) + geom_point()
p + geom_smooth(method = "lm", se = FALSE) + facet_wrap(~cyl)

发布于 2016-08-29 01:34:36
请看geom_abline()的帮助。有一个具有相同数据集的示例显示-没有面- that:
p + geom_abline() # Can't see it - outside the range of the data尝试:
p <- ggplot(mtcars, aes(wt, mpg)) + geom_point()
p + geom_abline(intercept = 20) + facet_wrap(~cyl)https://stackoverflow.com/questions/39197217
复制相似问题