r - 在R中制作箱形图?
问题描述
我有一个数据集,我首先想按站点对它们进行分组,然后每年用不同的颜色制作箱形图?因此,输出图应在 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
解决方案
期望的输出
因此,输出图应在 x 轴(NR_B,NR_C....)中表示站点名称,并为每个具有不同颜色的站点表示每年的箱线图。
您需要通过fill/color
as 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")
推荐阅读
- ios - 在 SwiftUI MVVM 中的子视图和父视图之间共享值
- php - XAMPP 不显示 html 段落
- java - 运行 selenium testng 可执行 jar 失败
- java - Room Android 实体和 POJO 必须有一个可用的公共构造函数
- php - 对象内部对象的访问信息
- node.js - 如何从json文件nodejs构造api
- java - 访客详细问题 java 中的 IO 文件处理
- python - 我如何在 Web 应用程序中访问远程机器浏览器 - Selenium Python
- vb.net - 内存映射文件随机消失
- swift - VStack 按钮中的图像和按钮标题