r - 2 系列 barplot ggplot2 或 Openair
问题描述
我正在尝试创建空气质量数据的条形图。我想要 X 轴上的监测站点,以及在每个站点相对于 y 轴测量的 2 种污染物的浓度,例如在伦敦站点,我测量了 5 ng/m3 的锑(系列 1)和 10 ng/m3 的钡(系列 2)。所以 y 轴就是浓度 (ng/m3)。
我已经搜索过了,如果第二个系列是可以通过颜色定义的定性属性,那么获得第二个系列的唯一示例似乎有效,所以你仍然只有一个栏而不是两个。
此外,这些示例似乎涉及手动在代码中输入数据框,但我有很多数据并想导入文件。我已成功从 csv 导入,但看不到如何在代码中引用它。
Openair 似乎只使用 timeProp 绘制必须与 X 轴上的日期相关的堆积条形图。
对不起,我对这样的编程非常缺乏经验,我希望我的问题是有道理的。任何帮助表示赞赏!
解决方案
我认为你需要这样的东西:
library(ggplot2)
data <- data.frame(cite= c('london','madrid','barcelona','london','madrid','barcelona'),
contaminent = c('Argon','Argon','Argon','Barium','Barium','Barium'),
Concentration= runif(6)*5)
ggplot() + geom_col(data = data,aes(x = cite,y=Concentration,fill=contaminent))
编辑:
现在假设您的数据名称为 my_data 并按如下方式组织:第一列名称 cites 与 cites 名称,然后每一列的名称是一个污染,其中包含每个 cite 的污染浓度值。那么您用于管理数据并在 ggplot 中使用的代码可能是:
library(ggplot2)
new_data <- data.frame(cites = rep(my_data$cites,ncol(my_data)-1),
contaminent_type= rep(colnames(my_data)[2:ncol(my_data)],each=nrow(my_data)),
Concentration= as.vector(my_data[,2:ncol(my_data)]))
ggplot() + geom_col(data = new_data,aes(x = cites,y=Concentration,fill=contaminent_type))
推荐阅读
- algorithm - 生成和解决一个没有边界的迷宫?
- html - 如何使用 HTML IFRAME 元素嵌入内容?
- powershell - 在同一命令中搜索隐藏和可见目录
- c# - 'Microsoft.AspNetCore.Identity.UserManager' 类型没有服务:尝试扩展 IdentityUser?
- android - 使用 firebase 实现异构 RecyclerView
- haskell - 将持久化 SqlPersistT 与 Servants 处理程序结合使用
- java - Spring SchedulingConfigurer 动态延迟
- dart - Dart:如何从字符串中获取字符,并进行比较
- makefile - CMake 可执行文件运行速度比在 ROOT 中运行慢
- java - EMF Ecore 模型中 EList 类型的 EAttribute 允许的“默认值文字”是什么?