小编ape*_*per的帖子

将多个ggplot2图与网格对齐

上下文

我想用相同的图例在同一页面上绘制两个ggplot2.http://code.google.com/p/gridextra/wiki/arrangeGrob描述了如何执行此操作.这看起来不错.但是......在我的例子中,我有两个具有相同x轴和不同y轴的图.当y轴的范围至少比另一个图的10倍(例如10000而不是1000)时,ggplot2(或网格?)不能使图正确对齐(参见下面的输出).

如何使用两个不同的y轴对齐绘图的左侧?

示例代码

x = c(1, 2)
y = c(10, 1000)
data1 = data.frame(x,y)
p1 <- ggplot(data1) + aes(x=x, y=y, colour=x) + geom_line()

y = c(10, 10000)
data2 = data.frame(x,y)
p2 <- ggplot(data2) + aes(x=x, y=y, colour=x) + geom_line()


# Source: http://code.google.com/p/gridextra/wiki/arrangeGrob
leg <- ggplotGrob(p1 + opts(keep="legend_box"))
legend=gTree(children=gList(leg), cl="legendGrob")
widthDetails.legendGrob <- function(x) unit(3, "cm")
grid.arrange(
  p1 + opts(legend.position="none"),
  p2 + opts(legend.position="none"),
  legend=legend, main ="", left = "")
Run Code Online (Sandbox Code Playgroud)

产量

示例图片

r data-visualization ggplot2

14
推荐指数
3
解决办法
8896
查看次数

标签 统计

data-visualization ×1

ggplot2 ×1

r ×1