改变ggplot图例的布局

8

我想知道是否有可能在不重写build_legend函数的情况下更改ggplot图例的布局?

例如:

我想要一个2*2的布局

a b
c d

而不是正常的1*4或4*1布局。

a b c d

或者

a
b
c
d

非常感谢,

MK


1
请不要交叉张贴 - 这会浪费人们回答可能已经在其他地方得到解答的问题的时间。 - hadley
谢谢你,Hadley。我以为这只在邮件列表之间受限制。 - MKao
我本来想回答自己的问题(使用Kohske的解决方案并致谢),这样其他不在邮件列表上的人也可以看到,但是我回答问题的时间受限,所以我无法发布它。 - MKao
2个回答

3

我认为ggplot2并不能做到这一点,你只有两个选择 - 水平或垂直。如果你想创建更高级的东西,你需要自己创建一个具有相同颜色方案的子图,并将其调整大小和叠加在你的绘图上(我想象中的是在合适的位置放置一个小的facet_grid())。

... + opts(legend.direction="horizontal")
... + opts(legend.direction="vertical")

3

Kohske已经发布了问题的解决方案,但它只能在下一个ggplot版本中使用。

qplot(1:4, 1:4, colour = letters[1:4]) + guides(colour = guide_legend(nrow = 2, byrow = T))

Kohske在ggplot2列表中回答了您相同的问题,链接如下:http://groups.google.com/group/ggplot2/msg/4a8b39ff690eaf48 - Brian Diggs
感谢 competent_tech 和 Brian 的编辑和链接。我会尽力保持我的代码和格式符合标准。干杯! - MKao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接