【问题标题】:ggplot2 legend items in a single horizontal rowggplot2图例项目在单个水平行中
【发布时间】:2016-03-18 14:42:36
【问题描述】:

这似乎是一个愚蠢的问题,但我有点困惑。

似乎我上周编写和测试的代码现在突然决定更改输出,即使代码中没有任何内容或 R 或​​ Rstudio 的版本没有改变。

以前,当我使用 ggplot2 绘制图并要求图例出现在图的底部时,它会自动将项目定向到单个水平行中。现在,当我运行相同的代码时,它会将项目放置在多个 2 行列中。

这是一个例子......

mtcars$cyl <- (1:32)
subcars <- subset(mtcars, cyl<10)
subcars$cyl <- as.factor(subcars$cyl)

ggplot(subcars, aes(carb, mpg, group=cyl, colour=cyl)) + 
  geom_line() +
  theme_classic() +
  theme(plot.title = element_text(size = rel(2), face="bold", vjust=-4)) +
  theme(legend.position = "bottom") +
  theme(legend.direction = "horizontal") +
  labs(title="Title") 

如您所见,我已经尝试在 theme(legend.direction = "horizontal") 行中添加,但我仍然得到一个图例,它在 5 个 2 行列中显示项目(是的,它甚至不只是两行)。

现在我只能假设有一些我不知道的更新或其他东西,所以我愿意接受我需要想出一个新的策略来处理这个问题(这只是'上周没有问题)。尽管我对为什么我的代码突然决定停止工作有点困惑(欢迎对此的任何输入),但我更感兴趣的是找到解决我的图例项目以奇怪的配置显示的直接问题的解决方案。

【问题讨论】:

  • 如果以下回答对您有所帮助,请不要添加“谢谢”作为评论,而是接受它。这可以通过单击投票箭头下方的复选标记来完成,并为您和回答者提供一点声誉。这向整个社区发出信号,表明您不再需要解决此问题的帮助。这不是强制性的,只是 Stack Overflow 的方式。

标签: r ggplot2 legend


【解决方案1】:

将此添加到您的情节中:

+ guides(colour = guide_legend(nrow = 1))

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多