我有这样的数据
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")
答案 0 :(得分:1)
首先,很难区分8种不同的颜色。这就是为什么您的8组似乎具有相似的颜色。
在这种情况下,您想要的不是图例(通常是图表摘要),而是“注释”。 您可以使用
直接添加组ggplot(...) +
geom_text(aes(x=as.factor(year), y=catch, label=group)) +
...
,然后尝试使用nudge_x
和nudge_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)) +
...