如何在ggplot2 R图中设置轴限制?
我绘制以下内容:
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)  现在说我只想绘制x=-5000到5000之间的区域,而不是整个范围。 
我怎样才能做到这一点?
基本上你有两个select
 scale_x_continuous(limits = c(-5000, 5000)) 
要么
 coord_cartesian(xlim = c(-5000, 5000)) 
第一个去除给定范围之外的所有数据点,第二个只调整可见区域。 在大多数情况下,你不会看到差异,但是如果你对数据适合任何东西,它可能会改变拟合的值。
 您也可以使用速记函数xlim (或ylim ),它像第一个选项一样去除给定范围之外的数据点: 
 + xlim(-5000, 5000) 
 有关更多信息,请查看coord_cartesian的描述。 
  ggplot2的RStudio cheatsheet使得视觉上非常清晰。 这是一个小小的部分: 
  
 
在CC BY下分发 。
 快速提示:如果您还使用coord_flip()来翻转x轴和y轴,则无法使用coord_cartesian()设置范围限制,因为这两个函数是独占的(请参阅此处 )。 
 幸运的是,这是一个简单的解决办法。 在coord_flip()设置你的限制如下: 
 p + coord_flip(ylim = c(3,5), xlim = c(100, 400)) 
这只是改变了可见范围(即不删除数据点)。