【问题标题】:ggplot legend not working with scale_colour_manualggplot 图例不适用于 scale_colour_manual
【发布时间】:2015-11-17 22:52:02
【问题描述】:

我知道之前有人问过一个相同的问题。 ggplot legend - scale_colour_manual not working

但这个问题涉及的数据集比我这里的数据要复杂一些,答案建议重组数据,然后使用重组后的数据。但是即使使用下面的简单数据,问题仍然存在,我无法解决。所以请不要将其标记为重复。

问题:在ggplot2中使用scale_colour_manual时,图例不显示。

p <- data.frame(a = runif(10, 1, 2))
ggplot(data=p, aes(x=a)) +
  geom_histogram() +
  geom_vline(aes(xintercept=mean(p$a), colour="mea")) +
  geom_vline(aes(xintercept=median(p$a), colour="med")) +
  scale_colour_manual(name="Statistic",
                      values=c("med"= "red", "mea"="green"))

感谢任何帮助。

【问题讨论】:

  • geom_vline 当前默认为 show_guide = FALSE,所以如果你想要一个图例,你需要改变它。

标签: r ggplot2 legend


【解决方案1】:

您必须在geom_vline 中使用show_guide=TRUE(默认为FALSE):

p <- data.frame(a = runif(10, 1, 2))
ggplot(data=p, aes(x=a)) +
  geom_histogram() +
  geom_vline(aes(xintercept=mean(a), colour="mea"), show_guide=TRUE) +
  geom_vline(aes(xintercept=median(a), colour="med"), show_guide=TRUE) +
  scale_colour_manual(name="Statistic",
                      values=c("med"= "red", "mea"="green"))

【讨论】:

  • 啊,谢谢!就是这么简单。我想知道为什么另一个问题需要一个复杂的答案。
  • 并在aes() 中使用mean(a),而不是mean(p$a)
猜你喜欢
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2022-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
相关资源
最近更新 更多