使用ggplot2打包时,在图表中显示图例

时间:2015-12-01 14:21:43

标签: r ggplot2 legend facet facet-wrap

我该怎么做......

legend is in a spare corner of a small multiple

...而不是默认...

enter image description here

1 个答案:

答案 0 :(得分:6)

我为此使用diamonds数据集。您可以使用theme(legend.position=来执行此操作:

ggplot(diamonds, aes(carat, price, fill = ..density..)) +
  xlim(0, 2) + stat_binhex(na.rm = TRUE) + theme(aspect.ratio = 1) +
  facet_wrap(~ color) + theme(legend.position=c(.8,.15))

输出:

enter image description here

基本上,theme(legend.position=c(.8,.15))取两个值,范围从0到1,一个用于x轴,一个用于y轴。 0表示将图例放在轴的开头,而1表示轴的末端。

如果您愿意,可以查看cookbook,其中有更多示例。

同样根据@Roland的评论使用以下legend.justification的评论可能会更好地定位:

ggplot(diamonds, aes(carat, price, fill = ..density..)) +
  xlim(0, 2) + stat_binhex(na.rm = TRUE) + theme(aspect.ratio = 1) +
  facet_wrap(~ color) + theme(legend.position = c(1, 0), legend.justification = c(1, 0))