将图例添加到geom_vline

时间:2016-06-06 15:00:47

标签: r ggplot2

我知道之前已经问过这个问题,但解决方案似乎对我不起作用。

我想要做的是用不同颜色的直方图表示我的中位数,平均值,上下分位数,然后在图中添加一个图例。这就是我到目前为止我尝试使用scale_color_manualscale_color_identity给我一个传奇。似乎没有什么工作。

quantile_1 <- quantile(sf$Unit.Sales, prob = 0.25)
quantile_2 <- quantile(sf$Unit.Sales, prob = 0.75)

ggplot(aes(x = Unit.Sales), data = sf) + 
  geom_histogram(color = 'black', fill = NA) + 
  geom_vline(aes(xintercept=median(Unit.Sales)),
            color="blue", linetype="dashed", size=1) + 
  geom_vline(aes(xintercept=mean(Unit.Sales)),
            color="red", linetype="dashed", size=1) +
  geom_vline(aes(xintercept=quantile_1), color="yellow", linetype="dashed", size=1)

resulting plot

1 个答案:

答案 0 :(得分:18)

您需要在aes

中映射颜色
ggplot(aes(x = Sepal.Length), data = iris) + 
  geom_histogram(color = 'black', fill = NA) + 
  geom_vline(aes(xintercept=median(iris$Sepal.Length),
                 color="median"), linetype="dashed",
             size=1) +
  geom_vline(aes(xintercept=mean(iris$Sepal.Length),
                 color="mean"), linetype="dashed",
             size=1) +
  scale_color_manual(name = "statistics", values = c(median = "blue", mean = "red"))

resulting plot