2 серии барплотов ggplot2 или Openair - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь создать гистограмму данных о качестве воздуха. Я хочу, чтобы сайт мониторинга находился на оси X, а концентрация 2 загрязняющих веществ измерялась на каждом участке по оси Y, например, на площадке в Лондоне я измерил 5 нг / м3 сурьмы (серия 1) и 10 нг / м3 бария (серия 2). Таким образом, ось Y будет просто Концентрация (нг / м3).

Я уже искал, и, похоже, единственные примеры получения 2-й серии работают, если вторая серия является качественным свойством, которое можно определить по цвету, поэтому у вас все еще есть только один столбец, а не два.

Также примеры, по-видимому, включают в себя ввод фрейма данных в коде вручную, но у меня много данных и я хочу импортировать файл. Я успешно импортировал из CSV, но не вижу, как ссылаться на него в коде.

Похоже, что Openair строит только те гистограммы, которые связаны с датами на оси X с помощью timeProp.

Извините, я очень неопытен с таким программированием, надеюсь, мой вопрос имеет смысл. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 08 ноября 2018

Я думаю, вам нужно что-то вроде этого:

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))

Edit:

Теперь предположим, что ваши данные имеют имя 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))
...