如何在线条图上添加图例?

时间:2019-07-29 10:26:42

标签: r ggplot2

我有这样的数据

    year    catch   group
    2011    22       1
    2012    45       1
    2013    34       1
    2011    11       2
    2012    22       2
    2013    32       2

我希望组的编号(1和2)出现在图中的线上方。 有什么建议吗?

我的真实数据共有8组,每行8条线,这使得它们很难看清,因为这些线彼此交叉并且图例的颜色相似。

我尝试过:

library(ggplot2)
ggplot(aes(x=as.factor(year), y=catch, group=as.factor(group), 
           col=as.factor(group)), data=df) +
  geom_line() +
  geom_point() +
  xlab("year") + 
  labs(color="group")

1 个答案:

答案 0 :(得分:1)

首先,很难区分8种不同的颜色。这就是为什么您的8组似乎具有相似的颜色。

在这种情况下,您想要的不是图例(通常是图表摘要),而是“注释”。 您可以使用

直接添加组
ggplot(...) +
geom_text(aes(x=as.factor(year), y=catch, label=group)) +
...

,然后尝试使用nudge_xnudge_y调整文本的位置。但是,如果每个组只需要1个标签,则必须准备一个数据框:

labels <- df %>% group_by(group) %>% top_n(1, -year)
ggplot(...) +
geom_text(data=labels, aes(x=as.factor(year), y=catch, label=group)) +
...