ggplot2 - geom_line - Отрисовка таймсерий без пропущенного значения - PullRequest
0 голосов
/ 09 июля 2020

У меня есть данные ежедневных временных рядов (2015, 2017, 2018), которые я хочу построить. Данные также не полны каждый год, например, в феврале 2018 года отсутствуют значения. Когда я строю график, есть прямая линия, соединяющая каждое отсутствующее значение.

Вот пример данных:

structure(list(station = c("NYA", "NYA", "NYA", "NYA", "NYA", 
"NYA", "NYA", "NYA", "NYA", "NYA", "NYA"), date = structure(c(1505952000, 
1506038400, 1506124800, 1506211200, 1519862400, 1519948800, 1520035200, 
1520121600, 1520208000, 1520294400, 1520380800), tzone = "UTC", class = c("POSIXct", 
"POSIXt")), yyyy = c(2017, 2017, 2017, 2017, 2018, 2018, 2018, 
2018, 2018, 2018, 2018), mmm = c("Sep", "Sep", "Sep", "Sep", 
"Mar", "Mar", "Mar", "Mar", "Mar", "Mar", "Mar"), dd = c(21, 
22, 23, 24, 1, 2, 3, 4, 5, 6, 7), season = c("Summer", "Summer", 
"Summer", "Summer", "Spring", "Spring", "Spring", "Spring", "Spring", 
"Spring", "Spring"), parameter = c("pm10", "pm10", "pm10", "pm10", 
"pm10", "pm10", "pm10", "pm10", "pm10", "pm10", "pm10"), concentration = c(1.18203524647271, 
0.272779348785041, 2.72734710946683, 1.90901454850886, 1.36318527323721, 
2.09023261562629, 2.81729052990488, 1.27222532200908, 0.999671017356097, 
0.999603793405514, 1.09048875706049)), row.names = c(NA, -11L
), class = c("tbl_df", "tbl", "data.frame"))

Вот код, который я сейчас использую:

ggplot(data = df2, aes(x = date, y = concentration,col=station )) +geom_line() + facet_wrap(facets = vars(parameter),scales="free",ncol=7)

Вы можете увидеть результат на следующем изображении

У меня несколько вопросов :

  1. Я хочу удалить прямую линию и удалить ось с отсутствующим значением, только день со значением. Могу ли я это сделать?
  2. Могу ли я рисовать для определенного параметра c (например, только Na и Cl)?
  3. Как редактировать метку в верхней части каждого графика?

Заранее благодарю

1 Ответ

0 голосов
/ 15 июля 2020

Я уже нашел решение. Безусловно, R не принимает прерывистый фрейм данных, поэтому прежде всего мне нужно манипулировать фреймом данных с непрерывной датой и оставить данные пустыми для данных NA. Результат будет примерно таким: this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...