Сделать коробочный сюжет в R? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть набор данных, который я сначала хочу сгруппировать по сайтам, а затем каждый год составлять коробочные графики разными цветами? Таким образом, выходной график должен представлять имя сайта по оси x (NR_B, NR_C ....) и блочную диаграмму за каждый год для каждого сайта разными цветами. Я пытался с помощью следующего кода, но он не работает. Кто-нибудь может мне помочь?

ggplot(AllEstuaryData, aes(x=Site, y=TP, color=Year)) +
  geom_boxplot() +
  theme(axis.text.x=element_text(angle = 45, hjust=1))

Site	Year	TP
NR_B	2001	216
NR_B	2001	254
NR_B	2001	216
NR_B	2001	216
NR_B	2001	215
NR_B	2001	206
NR_B	2001	224
NR_B	2001	212
NR_B	2001	215
NR_B	2001	208
NR_B	2001	195
NR_B	2001	214
NR_B	2003	209
NR_B	2003	203
NR_B	2003	214
NR_B	2003	196
NR_B	2003	200
NR_B	2003	207
NR_B	2003	203
NR_B	2003	195
NR_B	2003	210
NR_B	2003	210
NR_B	2004	199
NR_B	2004	200
NR_B	2004	207
NR_B	2004	205
NR_B	2004	216
NR_B	2004	216
NR_B	2004	209
NR_B	2004	199
NR_B	2004	218
NR_B	2004	214
NR_B	2005	278
NR_B	2005	247
NR_B	2005	262
NR_B	2005	256
NR_B	2005	240
NR_B	2005	260
NR_B	2005	282
NR_B	2005	259
NR_B	2005	239
NR_B	2005	272
NR_B	2010	260
NR_B	2010	240
NR_B	2010	250
NR_B	2015	260
NR_B	2015	280
NR_B	2015	270
NR_B	2015	240
NR_B	2015	270
NR_B	2015	240
NR_B	2015	260
NR_B	2015	280
NR_B	2015	240
NR_B	2015	270
NR_B	2018	270
NR_B	2018	300
NR_B	2018	280
NR_C	2001	374
NR_C	2001	355
NR_C	2001	370
NR_C	2001	380
NR_C	2001	356
NR_C	2001	343
NR_C	2001	365
NR_C	2001	356
NR_C	2001	382
NR_C	2001	368
NR_C	2001	358
NR_C	2001	373
NR_C	2003	385
NR_C	2003	433
NR_C	2003	357
NR_C	2003	422
NR_C	2003	376
NR_C	2003	394
NR_C	2003	394
NR_C	2003	398
NR_C	2003	390
NR_C	2003	380
NR_C	2004	395
NR_C	2004	410
NR_C	2004	395
NR_C	2004	415
NR_C	2004	349
NR_C	2004	384
NR_C	2004	420
NR_C	2004	419
NR_C	2004	393
NR_C	2004	389
NR_C	2005	404
NR_C	2005	394
NR_C	2005	408
NR_C	2005	431
NR_C	2005	373
NR_C	2005	442
NR_C	2005	407
NR_C	2005	414
NR_C	2005	396
NR_C	2005	484
NR_C	2010	430
NR_C	2010	390
NR_C	2010	320
NR_C	2018	430
NR_C	2018	390
NR_C	2018	420
NR_D	2001	239
NR_D	2001	225
NR_D	2001	229
NR_D	2001	221
NR_D	2001	214
NR_D	2001	212
NR_D	2001	282
NR_D	2001	234
NR_D	2001	226
NR_D	2001	235
NR_D	2001	254
NR_D	2001	217
NR_D	2003	233
NR_D	2003	236
NR_D	2003	215
NR_D	2003	248
NR_D	2003	250
NR_D	2003	232
NR_D	2003	217
NR_D	2003	228
NR_D	2003	232
NR_D	2003	218
NR_D	2004	228
NR_D	2004	229
NR_D	2004	228
NR_D	2004	212
NR_D	2004	221
NR_D	2004	220
NR_D	2004	239
NR_D	2004	244
NR_D	2004	263
NR_D	2004	242
NR_D	2005	258
NR_D	2005	251
NR_D	2005	234
NR_D	2005	276
NR_D	2005	248
NR_D	2005	266
NR_D	2005	249
NR_D	2005	265
NR_D	2005	251
NR_D	2005	262
NR_D	2010	300
NR_D	2010	300
NR_D	2010	390
NR_D	2018	250
NR_D	2018	230
NR_D	2018	260
NR_E	2012	630
NR_E	2012	710
NR_E	2012	820
NR_E	2013	540
NR_E	2013	540
NR_E	2013	560
NR_E	2018	410
NR_E	2018	390
NR_E	2018	410
NR_E	2012	2100
NR_E	2012	1610
NR_E	2012	1800
NR_E	2013	1000
NR_E	2013	1000
NR_E	2013	1000
NR_E	2015	1490
NR_E	2015	1590
NR_E	2015	1490
NR_E	2015	1530
NR_E	2015	1320
NR_E	2015	1430
NR_E	2015	1670
NR_E	2015	1420
NR_E	2015	1400
NR_E	2015	1450
NR_E	2016	1560
NR_E	2016	1450
NR_E	2016	1500
NR_E	2018	2100
NR_E	2018	1760
NR_E	2018	1540

1 Ответ

0 голосов
/ 07 октября 2019

Желаемый вывод

Таким образом, выходной график должен представлять имя сайта по оси x (NR_B, NR_C ....) и диаграмму для каждого года для каждого сайта с разными цветами.

Вам необходимо передать fill/color как factor(Year). Это скажет ggplot, что это отдельная категория.

ggplot(df, aes(x=Site, y=TP, fill=factor(Year))) +
  geom_boxplot() +
  theme(axis.text.x=element_text(angle = 45, hjust=1))+
  scale_fill_brewer(palette = "Set3")+
  theme(legend.position = "bottom")

Производит enter image description here

Это вне вопроса, но, учитывая природуданные, которые вы могли бы рассмотреть другой тип визуализации.

ggplot(df, aes(factor(Year), TP))+
 geom_jitter(width = 0.2) +
 facet_wrap(~Site, scales="free_y")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...