0

我想存储一个 geom_histogram 中的xminxmax参数并将它们应用于第二个 geom_histogram。

我使用 grid.arrange 将两个图放在同一页面上,并希望它们具有相同的 x 范围,同时允许第一个图根据其数据建立范围。第二个图是从第一个图数据的子集生成的,因此它不会包含超出第一个图建立的 x 范围的数据。但我不希望范围缩小以适合第二张图。使用下面的示例,我希望第二个图具有与第一个图相同的 x 维度。

library(ggplot2)
library(scales)
library(gdata)
library(grid)
library(gridExtra)

a<-(ggplot(mpg, aes(x = hwy)) + geom_histogram() + labs(title = "All Cars"))
b<-(ggplot(subset(mpg, cyl == 4), aes(x = hwy)) + geom_histogram() + labs(title = "Just        4 Cylindars"))

grid.arrange(a,b, ncol = 2)
4

1 回答 1

0

刻面显然会更干净。这只是向您展示如何查看 ggplot 对象内部的技巧。

尝试将此添加到b绘图命令中:

... +xlim( range( a$data[ , a$labels$x] )*c(0.9,1.1) )

需要使限制在“两个方向”上扩展。如果这些限制跨越了正值,则需要采用不同的策略。感兴趣的可以看看:

 names(a)
 str(a)
range( a$data[ , a$labels$x] )
#[1] 12 44

请注意,在 - 元素中没有设置 xlimits coordinates,我们需要使用与绘图一起存储的原始数据。

于 2013-10-30T21:03:48.163 回答