我绘制以下内容:
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)
Run Code Online (Sandbox Code Playgroud)
现在说我只是想绘制之间的区域x=-5000来5000,而不是整个范围.
我怎样才能做到这一点?
mid*_*iby 557
基本上你有两个选择
scale_x_continuous(limits = c(-5000, 5000))
Run Code Online (Sandbox Code Playgroud)
要么
coord_cartesian(xlim = c(-5000, 5000))
Run Code Online (Sandbox Code Playgroud)
第一个删除给定范围之外的所有数据点,第二个仅调整可见区域.在大多数情况下,您不会看到差异,但如果您对数据适用任何内容,则可能会更改拟合值.
您还可以使用简写函数xlim(或ylim),它与第一个选项一样,删除给定范围之外的数据点:
+ xlim(-5000, 5000)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看说明coord_cartesian.
该RStudio的cheatsheet为ggplot2使这很清楚直观.这是备忘单的一小部分:
在CC BY下分发.
小智 41
快速注意:如果您还使用coord_flip()翻转x和y轴,则无法设置范围限制,coord_cartesian()因为这两个函数是独占的(请参阅此处).
幸运的是,这是一个简单的解决方案; coord_flip()像这样设置你的限制:
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
Run Code Online (Sandbox Code Playgroud)
这只会改变可见范围(即不会删除数据点).
| 归档时间: |
|
| 查看次数: |
545594 次 |
| 最近记录: |