【发布时间】:2018-05-29 13:26:48
【问题描述】:
下午好,
我使用下面的代码来生成一个绘图:
ggplot() +
geom_line(data = disDataHeadItems, aes(x=disDataHeadItems$x,
y=disDataHeadItems$Freq)) +
geom_line(data = disDataLongTail, aes(x=disDataLongTail$x,
y=disDataLongTail$Freq)) +
xlab("Item id") +
ylab("# of occurrences") +
scale_x_continuous(breaks=seq(5, 75, 10), expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0)) +
geom_ribbon(aes(ymin=0, ymax=disDataHeadItems$Freq,
x=disDataHeadItems$x), fill="#CC6666") +
geom_ribbon(aes(ymin=0, ymax=disDataLongTail$Freq,
x=disDataLongTail$x), fill="#66CC99") +
geom_vline(xintercept=19, linetype="dotted")
这创建了以下情节,我对此非常满意:)
现在我想添加一个图例,它只是表示红色部分是顶部项目,绿色部分是数据的长尾。当我查找它时,我只找到指示如何更改图例的答案。但我的只是没有出现。欢迎任何帮助:)
【问题讨论】:
-
您指定的任何颜色 outside 您对 aes 的调用都不会出现在图例中。建议阅读一些 ggplot 教程来澄清。您需要将颜色放在 aes 括号内才能显示在图例中。
-
另外,当提到
data=时,在调用列时不需要引用数据框,例如;geom_line(data = disDataHeadItems, aes(x=disDataHeadItems$x, y=disDataHeadItems$Freq))将是geom_line(data=disDataHeadItems, aes(x=x, y=Freq)) -
啊,谢谢你,似乎修复了它,现在我可以改变现有的传说了!
-
您可以做一些事情来简化事情:一是
geom_ribbon(ymin = 0, ...)等同于geom_area。另一个是,这将受益于重塑数据以避免多次调用同一个几何图形。您可以发布数据样本吗?