【问题标题】:How to make ggplot legend add objects horizontally (vs vertically)如何使ggplot图例水平添加对象(与垂直)
【发布时间】:2018-05-18 18:26:09
【问题描述】:

通过向theme 函数添加以下参数,可以将ggplot 中的图例作为水平 图例移动到图形的底部: p>

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

然而,并不是真的……

legend.direction="horizontal" 似乎只是减少了图例中的行数和每行 in 中的图例对象的数量。

这可以使用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))

无论如何....

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

  • 所以不是a 高于 b 等(“垂直”排序)如上所述,我想添加b 旁边 a(“horizontally”排序)。

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

像这样:

【问题讨论】:

    标签: r ggplot2 legend


    【解决方案1】:

    尝试将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))
    

    【讨论】:

    • 我发誓你可以看一整天而错过你需要的一个简单的答案!谢谢,@joran。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2013-04-25
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多