我有一个数据集,我首先要按地点对它们进行分组,然后每年用不同的颜色绘制箱形图?因此,输出图应在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
答案 0 :(得分:0)
因此,输出图应在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")
这是不可能的,但是,鉴于数据的性质,您可能需要考虑其他类型的可视化。
ggplot(df, aes(factor(Year), TP))+
geom_jitter(width = 0.2) +
facet_wrap(~Site, scales="free_y")