【发布时间】:2011-05-11 11:36:44
【问题描述】:
我有一个主要图表和一些次要信息,我想在它下面的另一个图表中分面。刻面效果很好,除了我不知道如何控制一个方面与另一个方面使用的相对空间。我知道 space='free' 但这仅在范围对应于所需的相对大小时才有用。
例如,我可能想要一个图表,其中第一个方面占 80%,第二个方面占 20%。这是一个例子:
data <- rbind(
data.frame(x=1:500, y=rnorm(500,sd=1), type='A'),
data.frame(x=1:500, y=rnorm(500,sd=5), type='B'))
ggplot() +
geom_line(aes(x=x, y=y, colour=type), data=data) +
facet_grid(type ~ ., scale='free_y')
上面创建了两个垂直尺寸相等的面。在facet_grid 函数中添加space='free' 会更改尺寸,使得下刻面大约比上刻面大5 倍(如预期的那样)。
假设我希望鞋面大 2 倍,具有相同的数据集和方面的排序。我怎样才能做到这一点?
在重新调整数据集和手动覆盖轴标签(如果是,如何)时,是否有一些技巧可以做到这一点?
另类
如下所示,可以使用视口来渲染为多个图形。我曾考虑过这一点,实际上在过去使用这种方法实现了标准绘图和视口。
问题是很难让 x 轴与这种方法对齐。所以如果有办法固定y轴标签区域的大小和图例区域的大小,可以生成2个具有相同渲染区域的图形。
【问题讨论】:
-
我应该指出,但我需要 x 轴精确对齐。在单独的图表中渲染是考虑过的,但不会像 x 轴对齐那样非常困难。这对于查看时间序列中的重合指标很重要。