如何使ggplot图例水平(与垂直)添加对象

the*_*ist 3 r legend ggplot2

通过向函数添加以下参数,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))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

不管……

如果您在上述代码的图形输出中注意到,即使我可以控制图例的“尺寸”(即行数),我也无法弄清楚如何将图例的顺序从垂直更改为水平的

  • 因此,不是a上面那样高于 b等(“垂直”排序),我想b添加 a(“ horizontally”排序)旁边

如何让我的图例水平或垂直添加对象?

像这样:

在此处输入图片说明

jor*_*ran 5

尝试添加byrow = TRUEguide_legend

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

在此处输入图片说明