虽然有一些主题朝着相同的大方向发展,但我还没有找到任何可以专门解决我的问题的主题。因此,一个新的话题,并提前感谢所有的帮助。
情况
我有两个地块,需要水平地放在一个图中,例如:
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
带有此代码示例的包。它几乎可以满足我的需求,只是图表是垂直排列的。我尝试使用函数参数,但不知道如何水平排列图。希望有人对该软件包/问题有更多经验。谢谢!