如何让ggplot图例水平添加对象(vs垂直)

时间:2018-05-18 18:26:09

标签: r ggplot2 legend

ggplot中的图例可以作为水平图例移动到图形的底部,方法是将以下参数添加到theme功能:

  • legend.position="bottom"将图例移到图表下方
  • legend.direction="horizontal"将图例定位为水平。

但是,不是真的......

legend.direction="horizontal"似乎只会减少图例中的行数以及每行中图例对象的数量。

这可以使用guides(color=guide_legend(nrow=x)

手动完成
dat <- data.frame(plot = rep(letters,2), val = rep(1:length(letters),2))
library(ggplot2)
ggplot(dat, aes(x = val, y = val, color = plot)) + 
  geom_point() +
  theme(legend.position="bottom") +
  guides(color=guide_legend(nrow=2))

enter image description here

不管 ....

如果您在上面代码的图形输出中注意到,即使我可以控制&#34;尺寸&#34;我的传奇(即行数),我无法弄清楚如何将图例的排序从垂直变为水平

  • 如上所述,而不是a b等等(&#34; 垂直&#34;排序),希望在 b(&#34; a&#34;已排序)旁边添加 <{1}}。

如何让我的图例水平添加水平垂直

像这样:

enter image description here

1 个答案:

答案 0 :(得分:4)

尝试将byrow = TRUE添加到guide_legend

ggplot(dat, aes(x = val, y = val, color = plot)) + 
  geom_point() +
  theme(legend.position="bottom") +
  guides(color=guide_legend(nrow=2, byrow = TRUE))

enter image description here