如何在ggplot2 R绘图中设置轴的限制?

如何在ggplot2 R绘图中设置轴的限制?,r,plot,ggplot2,R,Plot,Ggplot2,我绘制了如下图: library(ggplot2) carrots <- data.frame(length = rnorm(500000, 10000, 10000)) cukes <- data.frame(length = rnorm(50000, 10000, 20000)) carrots$veg <- 'carrot' cukes$veg <- 'cuke' vegLengths <- rbind(carrots, cukes) ggplot

我绘制了如下图:

library(ggplot2)    

carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)

ggplot(vegLengths, aes(length, fill = veg)) +
 geom_density(alpha = 0.2)
库(ggplot2)

胡萝卜基本上你有两个选择

scale_x_continuous(limits = c(-5000, 5000))

其中第一个删除给定范围之外的所有数据点,第二个仅调整可见区域。在大多数情况下,您不会看到差异,但如果您对数据进行任何拟合,则可能会更改拟合值

您还可以使用速记功能
xlim
(或
ylim
),它与第一个选项一样,删除给定范围之外的数据点:

+ xlim(-5000, 5000)
有关更多信息,请查看的说明

for
ggplot2
在视觉上非常清晰。以下是该备忘单的一小部分:


在下分发。

基本上,您有两种选择

scale_x_continuous(limits = c(-5000, 5000))

其中第一个删除给定范围之外的所有数据点,第二个仅调整可见区域。在大多数情况下,您不会看到差异,但如果您对数据进行任何拟合,则可能会更改拟合值

您还可以使用速记功能
xlim
(或
ylim
),它与第一个选项一样,删除给定范围之外的数据点:

+ xlim(-5000, 5000)
有关更多信息,请查看的说明

for
ggplot2
在视觉上非常清晰。以下是该备忘单的一小部分:


在下分发。

快速注意:如果同时使用
coord\u flip()
翻转x轴和y轴,则无法使用
coord\u cartesian()
设置范围限制,因为这两个函数是互斥的(请参阅)

幸运的是,这是一个简单的解决方案;在
coord\u flip()
内设置限制,如下所示:

p + coord_flip(ylim = c(3,5), xlim = c(100, 400))

这只会改变可见范围(即不删除数据点)。

快速注意:如果您还使用
coord\u flip()
翻转x轴和y轴,则无法使用
coord\u cartesian()
设置范围限制,因为这两个函数是互斥的(请参阅)

幸运的是,这是一个简单的解决方案;在
coord\u flip()
内设置限制,如下所示:

p + coord_flip(ylim = c(3,5), xlim = c(100, 400))

这只会改变可见范围(即不删除数据点)。

现在还有
库(缩放);…+连续缩放(限制=c(-5000,5000),oob=squish)
(默认为
oob=censor
);参见
?squish
?审查员:NB。如果处理某些顶点超出限制的直线/多边形,则可能会出现问题,因为整个对象将从图形中移除plot@geotheory:笛卡尔方法的
coord_
也是这样吗?不,我应该更具体,只是实践中的第一种方法,用于“打印”目的,使用
coord_笛卡尔方法(xlim=
您可能还需要重置
ylim
,并重置标签和网格分隔符。现在还有
库(scales);…+scale\u x\u continuous(limits=c(-50005000),oob=squish)
(默认值为
oob=censor
);请参见
?squish
?censor
:NB。如果处理某些顶点超出限制的直线/多边形,则可能会出现问题,因为整个对象将从plot@geotheory:笛卡尔坐标法也是如此吗?不,我应该更具体一点,只是实践中的第一种方法,出于“打印”目的,使用
coord_cartesian(xlim=
您可能还需要重置
ylim
,并重置标签和网格分隔符。我在这里发布了一个类似但更难的问题,关于如何仅限制一侧。我在这里发布了一个类似但更难的问题,关于如何仅限制一侧