虽然有一些与我问题同方向的话题,但我没有找到任何一个可以具体解决我的问题。因此,我开了一个新话题,在此提前感谢所有的帮助。
情况
我有两个图形需要水平并排放在同一张图中,例如:
library(ggplot2)
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
p1 <- qplot(price, carat, data=dsamp, colour=clarity)
p2 <- qplot(price, depth, data=dsamp, colour=clarity)
尽管因情节不同而有所不同,但分组和独立变量保持不变。因此,我只需要在图中使用一个图例来描述这些组。
我尝试过的方法以及无法解决的问题
我尝试使用R Cookbook中描述的解决方案。该页面上提供的自定义multiplot()
函数可以很好地呈现没有图例的图形。然而,如果只需要一个图例,那么该函数将失败。因为其中一个图形将包含图例,而另一个图形不包含图例,两个图形的宽度将相对于彼此不同(请从链接中复制multiplot函数):
multiplot(p1 + theme(legend.position = "none"),p2,cols=2)
我发现的另一个潜在解决方案是包gridExtra
,具体可参考代码示例。它几乎满足我的需求,但图形是垂直排列的。我尝试调整函数参数,但无法弄清如何水平排列绘图。希望有人对该软件包/问题有更多经验。谢谢!