我正在使用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
答案 0 :(得分:11)
使用ggplot的新主题环境只需要一个简单的:+ guides(col=guide_legend(ncol=2))
即可将图例格式化为2列。
答案 1 :(得分:8)
您可以使用guide_legend()
来控制ggplot图例的布局和外观。特别是,它需要参数nrow
和ncol
,这些都是您所追求的。
以下是非常有用的文档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)