2 серии барплота ggplot2 или Openair
Я пытаюсь создать гистограмму данных о качестве воздуха. Я хочу, чтобы сайт мониторинга находился на оси X, а концентрация двух загрязняющих веществ измерялась на каждом участке по оси Y, например, на площадке в Лондоне я измерил 5 нг / м3 сурьмы (серия 1) и 10 нг / м3 бария (серия 2). Таким образом, ось Y будет просто Концентрация (нг / м3).
Я уже искал, и единственные примеры получения 2-й серии, кажется, работают, если вторая серия является качественным свойством, которое можно определить по цвету, так что у вас все еще есть только один столбец, а не два.
Также примеры, кажется, включают в себя ввод фрейма данных в коде вручную, но у меня много данных и я хочу импортировать файл. Я успешно импортировал из CSV, но не вижу, как ссылаться на него в коде.
Openair, похоже, строит только гистограммы с накоплением, которые должны относиться к датам на оси X с помощью timeProp.
Извините, я очень неопытен с таким программированием, надеюсь, мой вопрос имеет смысл. Любая помощь приветствуется!
1 ответ
Я думаю, что вам нужно что-то вроде этого:
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 и упорядочены следующим образом: имя первого столбца цитирует с именами цитирований, затем имя каждого столбца представляет собой загрязнение со значениями концентрации загрязнения для каждого цитируемого объекта. Тогда ваш код для управления вашими данными и используемый в 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))