多条线图,但我只想在一行中显示文本和点

问题描述 投票:0回答:1

所以我有这段代码可绘制以下多条线图

grafico1 <- ggplot(dataset1, aes(x = V1, y = V3)) + 
  geom_line(aes(color = V2), size = 1) +
  scale_color_manual(values = c("#D2691E","#00FFFF","#228B22"))   +
  scale_x_continuous(breaks = round(seq(min(dataset1$V1), max(dataset1$V1)))) + geom_point()  +
geom_text(aes(label=V3), nudge_y = 1000)

看到它在所有行中绘制点和文本值。所以我想要的是这些点和值文本​​仅出现在蓝线中。

“https://imgur.com/a/tpYwuto

数据(csv)

     V1     V2    V3
1  2019   CNPq 17718
2  2018   CNPq 25466
3  2017   CNPq 24399
4  2016   CNPq 21938
5  2015   CNPq 19747
6  2014   CNPq 17909
7  2013   CNPq 16935
8  2012   CNPq 15427
9  2011   CNPq 13600
10 2010   CNPq 11660
11 2009   CNPq  9986
12 2008   CNPq  3842
13 2019  CAPES 14975
14 2018  CAPES 18611
15 2017  CAPES 16956
16 2016  CAPES 14800
17 2015  CAPES 12836
18 2014  CAPES 10916
19 2013  CAPES  9702
20 2012  CAPES  8403
21 2011  CAPES  7085
22 2010  CAPES  5683
23 2009  CAPES  4643
24 2008  CAPES  1724
25 2019 FAPESP  7654
26 2018 FAPESP 11332
27 2017 FAPESP 10774
28 2016 FAPESP  9828
29 2015 FAPESP  8923
30 2014 FAPESP  8152
31 2013 FAPESP  7837
32 2012 FAPESP  7175
33 2011 FAPESP  6433
34 2010 FAPESP  5577
35 2009 FAPESP  4951
36 2008 FAPESP  1869
r ggplot2 graph line points
1个回答
0
投票

您可以使用以下条件设置标签和点的条件:

ggplot(df, aes(x = V1, y = V3)) + 
  geom_line(aes(color = V2), size = 1) +
  scale_color_manual(values = c("#D2691E","#00FFFF","#228B22"))   +
  scale_x_continuous(breaks = seq(min(df$V1), max(df$V1))) +
  geom_point(aes(size = V2 == "CNPq"), show.legend = FALSE)  +
  geom_text(aes(label=ifelse(V2 == "CNPq", V3, "")), nudge_y = 1000) +
  scale_size_manual(values=c(-1,1))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.