#r #ggplot2
#r #ggplot2
Вопрос:
У меня есть этот код для графика:
t <- ggplot(painel_df, aes(as.numeric(Year), E.tertiary, shape =income_group, linetype = income_group, colour=income_group, fill=income_group ))
geom_smooth(method="lm")
geom_point(size=0.1)
theme_bw()
xlab("Years")
ylab("Tertiary enrollments (%gross)") theme_bw()
theme(axis.line = element_line(colour = "grey67"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())
plot(t)
И дает мне этот график
У меня есть два сомнения:
-
Изменение порядка и названия легенды: я хочу, чтобы заголовок был «Группа доходов», а для порядка я хочу «Высокий», «Выше среднего», «Ниже среднего», а затем «Низкий»
-
Я хочу изменить тип строки. Таким образом, если читатель читает мою статью черным по белому, он может понять, какая строка представляет каждую группу доходов. Проблема в том, что я добавил тип строки в свой код, однако я не думаю, что это воспринимается читателем. Я думаю, что хорошим типом строки для различения каждой группы было бы: одна строка с «сплошным», вторая с «пунктиром», третья с «пунктиром» и последняя с «dotdash».
Вы можете мне помочь?
Пример моих данных здесь:
Country Year E.tertiary income_group
1 Albania 1980 NA UM
2 Albania 1981 5.18940 UM
3 Albania 1982 NA UM
4 Albania 1983 5.92612 UM
5 Albania 1984 6.55999 UM
6 Albania 1985 7.02591 UM
7 Albania 1986 7.22121 UM
8 Albania 1987 7.32687 UM
9 Albania 1988 7.73796 UM
10 Albania 1989 8.14828 UM
11 Albania 1990 8.36636 UM
12 Albania 1991 8.85533 UM
13 Albania 1992 9.28732 UM
14 Albania 1993 11.17761 UM
15 Albania 1994 10.63358 UM
16 Albania 1995 10.20282 UM
17 Albania 1996 10.93945 UM
18 Albania 1997 12.69972 UM
19 Albania 1998 13.55017 UM
20 Albania 1999 14.74777 UM
21 Albania 2000 15.53661 UM
22 Albania 2001 15.90463 UM
23 Albania 2002 16.31143 UM
24 Albania 2003 16.65724 UM
25 Albania 2004 19.89044 UM
26 Albania 2005 23.18983 UM
27 Albania 2006 26.63714 UM
28 Albania 2007 30.68713 UM
29 Albania 2008 32.09280 UM
30 Albania 2009 33.38555 UM
31 Albania 2010 44.54925 UM
32 Albania 2011 49.87870 UM
33 Albania 2012 59.25201 UM
34 Albania 2013 64.63443 UM
35 Albania 2014 65.78297 UM
36 Albania 2015 62.00762 UM
37 Albania 2016 58.38185 UM
38 Albania 2017 57.37526 UM
39 Albania 2018 54.96133 UM
40 Albania 2019 NA <NA>
41 Algeria 1980 NA UM
42 Algeria 1981 NA UM
43 Algeria 1982 NA UM
44 Algeria 1983 NA UM
45 Algeria 1984 NA UM
46 Algeria 1985 NA UM
47 Algeria 1986 NA UM
48 Algeria 1987 9.04504 UM
49 Algeria 1988 8.86452 UM
50 Algeria 1989 NA UM
51 Algeria 1990 10.29314 UM
52 Algeria 1991 11.01270 UM
53 Algeria 1992 11.14538 UM
54 Algeria 1993 10.98829 UM
55 Algeria 1994 10.46949 UM
56 Algeria 1995 10.15425 UM
57 Algeria 1996 11.41825 UM
58 Algeria 1997 NA UM
59 Algeria 1998 NA UM
60 Algeria 1999 13.72464 UM
61 Algeria 2000 NA UM
62 Algeria 2001 15.65381 UM
63 Algeria 2002 17.37116 UM
64 Algeria 2003 18.57795 UM
65 Algeria 2004 19.14942 UM
66 Algeria 2005 20.87286 UM
67 Algeria 2006 21.33784 UM
68 Algeria 2007 23.60133 UM
69 Algeria 2008 NA UM
70 Algeria 2009 29.90938 UM
71 Algeria 2010 29.88943 UM
72 Algeria 2011 31.21409 UM
73 Algeria 2012 32.20153 UM
74 Algeria 2013 33.89099 UM
75 Algeria 2014 34.48182 UM
76 Algeria 2015 36.78132 UM
77 Algeria 2016 42.62885 UM
78 Algeria 2017 47.64683 UM
79 Algeria 2018 51.36567 UM
80 Algeria 2019 NA UM
81 Argentina 1980 21.73469 UM
82 Argentina 1981 23.10263 UM
83 Argentina 1982 23.83000 UM
84 Argentina 1983 24.83893 UM
85 Argentina 1984 28.67647 UM
86 Argentina 1985 35.49595 UM
87 Argentina 1986 37.42499 UM
88 Argentina 1987 39.22065 UM
89 Argentina 1988 NA UM
90 Argentina 1989 NA UM
91 Argentina 1990 NA UM
92 Argentina 1991 38.11911 UM
93 Argentina 1992 NA UM
94 Argentina 1993 NA UM
95 Argentina 1994 37.00133 UM
96 Argentina 1995 NA UM
97 Argentina 1996 NA UM
98 Argentina 1997 NA UM
99 Argentina 1998 46.96070 UM
100 Argentina 1999 48.83172 UM
101 Argentina 2000 53.96481 UM
102 Argentina 2001 59.01155 UM
103 Argentina 2002 62.74873 UM
104 Argentina 2003 65.17626 UM
105 Argentina 2004 65.48537 UM
106 Argentina 2005 63.96667 UM
107 Argentina 2006 66.96473 UM
108 Argentina 2007 66.41163 UM
109 Argentina 2008 68.05695 UM
110 Argentina 2009 70.20646 UM
111 Argentina 2010 73.23140 UM
112 Argentina 2011 76.29740 UM
113 Argentina 2012 77.44629 UM
114 Argentina 2013 78.22390 UM
115 Argentina 2014 80.99581 UM
116 Argentina 2015 84.00200 UM
117 Argentina 2016 87.21345 UM
118 Argentina 2017 89.95852 UM
119 Argentina 2018 NA UM
120 Armenia 1980 NA LM
121 Armenia 1981 NA LM
122 Armenia 1982 NA LM
123 Armenia 1983 NA LM
124 Armenia 1984 NA LM
125 Armenia 1985 NA LM
126 Armenia 1986 17.59960 LM
127 Armenia 1987 NA LM
128 Armenia 1988 18.79871 LM
129 Armenia 1989 20.43590 LM
130 Armenia 1990 23.20482 LM
131 Armenia 1991 25.35670 LM
132 Armenia 1992 25.34212 LM
133 Armenia 1993 23.02764 LM
134 Armenia 1994 19.12431 LM
135 Armenia 1995 19.08214 LM
136 Armenia 1996 16.93857 LM
137 Armenia 1997 22.72023 LM
138 Armenia 1998 33.57358 LM
139 Armenia 1999 35.21241 LM
140 Armenia 2000 35.54979 LM
141 Armenia 2001 33.54530 LM
142 Armenia 2002 36.14686 LM
143 Armenia 2003 37.21888 LM
144 Armenia 2004 37.88314 LM
145 Armenia 2005 39.54677 LM
146 Armenia 2006 43.11535 LM
147 Armenia 2007 45.93094 LM
148 Armenia 2008 48.48933 LM
149 Armenia 2009 51.33459 LM
150 Armenia 2010 52.98915 LM
151 Armenia 2011 53.33778 LM
152 Armenia 2012 46.15803 LM
153 Armenia 2013 45.73739 LM
154 Armenia 2014 47.08219 LM
155 Armenia 2015 46.52180 LM
156 Armenia 2016 51.08019 LM
157 Armenia 2017 52.25153 LM
158 Armenia 2018 54.57048 LM
159 Armenia 2019 NA <NA>
160 Austria 1980 21.36817 H
161 Austria 1981 22.30216 H
162 Austria 1982 22.46463 H
163 Austria 1983 22.98781 H
164 Austria 1984 23.94280 H
165 Austria 1985 25.52486 H
166 Austria 1986 26.70454 H
167 Austria 1987 27.81727 H
168 Austria 1988 29.37026 H
169 Austria 1989 30.58759 H
170 Austria 1990 32.53644 H
171 Austria 1991 34.69429 H
172 Austria 1992 37.61071 H
173 Austria 1993 39.76938 H
174 Austria 1994 42.26460 H
175 Austria 1995 44.97695 H
176 Austria 1996 47.49055 H
177 Austria 1997 49.56702 H
178 Austria 1998 52.39628 H
179 Austria 1999 NA H
180 Austria 2000 NA H
181 Austria 2001 NA H
182 Austria 2002 NA H
183 Austria 2003 NA H
184 Austria 2004 NA H
185 Austria 2005 NA H
186 Austria 2006 NA H
187 Austria 2007 63.04729 H
188 Austria 2008 65.88690 H
189 Austria 2009 68.11265 H
190 Austria 2010 75.62378 H
191 Austria 2011 78.49945 H
192 Austria 2012 78.93891 H
193 Austria 2013 79.65540 H
194 Austria 2014 79.15870 H
195 Austria 2015 80.71942 H
196 Austria 2016 83.45495 H
197 Austria 2017 85.05714 H
198 Austria 2018 NA H
199 Austria 2019 NA <NA>
200 Bangladesh 1980 3.24599 LM
201 Bangladesh 1981 3.09603 LM
202 Bangladesh 1982 3.80131 LM
203 Bangladesh 1983 4.67838 LM
204 Bangladesh 1984 5.04444 LM
205 Bangladesh 1985 5.11443 LM
206 Bangladesh 1986 4.98486 LM
207 Bangladesh 1987 4.32374 LM
208 Bangladesh 1988 3.71820 LM
209 Bangladesh 1989 3.67474 LM
210 Bangladesh 1990 4.20896 LM
211 Bangladesh 1991 NA LM
212 Bangladesh 1992 NA LM
213 Bangladesh 1993 NA LM
214 Bangladesh 1994 NA LM
215 Bangladesh 1995 NA LM
216 Bangladesh 1996 NA LM
217 Bangladesh 1997 NA LM
218 Bangladesh 1998 NA LM
219 Bangladesh 1999 5.63344 LM
220 Bangladesh 2000 5.63134 LM
221 Bangladesh 2001 6.65154 LM
222 Bangladesh 2002 6.34442 LM
223 Bangladesh 2003 6.39096 LM
224 Bangladesh 2004 5.88915 LM
225 Bangladesh 2005 6.44670 LM
226 Bangladesh 2006 7.36120 LM
227 Bangladesh 2007 7.93297 LM
228 Bangladesh 2008 8.88409 LM
229 Bangladesh 2009 10.85809 LM
230 Bangladesh 2010 NA LM
231 Bangladesh 2011 13.69156 LM
232 Bangladesh 2012 13.80100 LM
233 Bangladesh 2013 NA LM
234 Bangladesh 2014 13.86508 LM
235 Bangladesh 2015 NA LM
236 Bangladesh 2016 17.87436 LM
237 Bangladesh 2017 18.15146 LM
238 Bangladesh 2018 20.56507 LM
239 Belarus 1980 38.38587 UM
240 Belarus 1981 39.68625 UM
241 Belarus 1982 39.96981 UM
242 Belarus 1983 41.18185 UM
243 Belarus 1984 42.57104 UM
244 Belarus 1985 44.40880 UM
245 Belarus 1986 45.58386 UM
246 Belarus 1987 46.69733 UM
247 Belarus 1988 47.64348 UM
248 Belarus 1989 48.20013 UM
249 Belarus 1990 49.51083 UM
250 Belarus 1991 48.20178 UM
Ответ №1:
Я не смог это протестировать, поскольку вы не включили свой фрейм данных. Пожалуйста, используйте dput
для этого функцию.
Я передал linetype
geom_smooth
кому и вручную установил разрывы для вашей легенды.
ggplot(painel_df, aes(as.numeric(Year), E.tertiary, shape =income_group, colour=income_group, fill=income_group))
geom_smooth(aes(linetype = income_group), method="lm")
geom_point(size=0.1)
theme_bw()
xlab("Years")
ylab("Tertiary enrollments (%gross)") theme_bw()
theme(axis.line = element_line(colour = "grey67"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())
scale_colors_manual(breaks=c("H", "UM", "LM", "L"))
Если строки не меняются, вы можете добавить:
scale_linetype_manual(values=c("solid", "dashed", "dotted", "dotdash"))
Комментарии:
1. Я не знаю, как использовать dput. Тем не менее, я добавил образец своей базы данных. Помогает ли это?
2. Просто скопируйте и вставьте выходные данные
dput(painel_df)
Ответ №2:
painel_df$income_group <- factor(painel_df$income_group, levels=c("H", "UM", "LM", "L"), labels=c("High", "Upper-middle", "Lower-middle", "Low"))
tt<- ggplot(painel_df, aes(as.numeric(Year), E.tertiary, colour = income_group, fill=income_group))
geom_smooth(aes(linetype = income_group), method="lm")
scale_linetype_manual(values=c("solid" , "dotdash", "dotted", "twodash"))
theme(legend.title = element_blank())
theme(axis.line = element_line(colour = "grey67"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())
xlab("Years")
ylab("Tertiary enrollments (%gross)")
plot(tt)
- Первое сомнение устраняется в первой строке кода
- и для второй проблемы — это функция «scale_linetype_manual»
Вывод дает следующее