在R代码中使用ggplot时在图例列表中创建列

时间:2012-06-22 19:24:20

标签: r ggplot2

我正在使用ggplot(包名:ggplot2)绘制15行,每个行代表一个单独的实体,并希望为其创建一个图例。但是,我无法将图例条目划分为多个列。有人可以建议如何在ggplot环境中做同样的事情。

目前,我使用以下命令创建图例:

opts(title=plotName,legend.position='bottom')

然而,这给出了一个列的图例。因此,图表中的大面积区域由传说本身占据。将它分成2或3列将真正有助于原因,同时将图例保持在图表的底部。 我也试过了legend.direction但是这个命令在一行中显示了一个不可取的图例,除非我可以将它分散到2-3行。

opts(title=plotName,legend.position='bottom',legend.direction="horizontal")

提前致谢, Munish

2 个答案:

答案 0 :(得分:11)

使用ggplot的新主题环境只需要一个简单的:+ guides(col=guide_legend(ncol=2))即可将图例格式化为2列。

答案 1 :(得分:8)

您可以使用guide_legend()来控制ggplot图例的布局和外观。特别是,它需要参数nrowncol,这些都是您所追求的。

以下是非常有用的文档Changes and additions to ggplot2-0.9.0.pdf的第2部分的示例。

library(ggplot2)

q <- ggplot(diamonds, aes(x = table, fill = clarity)) +
     geom_histogram() +
     scale_y_continuous()

q + guides(fill = guide_legend(nrow = 4, title.hjust = 0.4,
        title.theme = theme_text(size = 12, face = "bold"))) +
xlim(45, 75)