单个水平行中的ggplot2图例项

Psy*_*eek 19 r legend ggplot2

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

似乎我上周编写和测试的代码现在突然决定改变输出,即使代码或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") 
Run Code Online (Sandbox Code Playgroud)

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

现在我只能假设有一些我不知道的更新或者其他什么,所以我愿意接受我需要提出一个新的策略来处理这个问题(这不是一个问题上个星期).虽然我有点困惑为什么我的代码突然决定停止工作(对此欢迎的任何输入),我更感兴趣的是找到一个修复我的传奇项目在一个奇怪的配置中显示的直接问题.

jor*_*ran 49

将此添加到您的情节:

+ guides(colour = guide_legend(nrow = 1))
Run Code Online (Sandbox Code Playgroud)

  • 当然,如果图例遵循“填充”而不是“颜色”美学,则它是“+guides(fill =guide_legend(nrow = 1))” (6认同)