单个水平行中的ggplot2图例项

时间:2016-03-18 14:42:36

标签: r ggplot2 legend

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

似乎我上周编写和测试的代码现在突然决定更改输出,即使代码或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行列中的项目(是的,它甚至不只是两行)。< / p>

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

1 个答案:

答案 0 :(得分:39)

将此添加到您的情节中:

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