8

我正在使用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")

提前致谢, 穆尼什

4

2 回答 2

11

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

于 2013-05-19T16:40:50.190 回答
8

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

这是从非常有用的文档Changes and added 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)
于 2012-06-22T19:37:28.013 回答