Сбор даты и отображение процесса в ggplot

У меня есть набор данных, содержащий 25 переменных и 112095 наблюдений.

Я пытаюсь построить график с 5 переменными.

Sample dataset

На изображении вы могли видеть, что у меня есть дата в 1 столбце, типы процессов в столбце 2, столбец 4 с верхним пределом и столбец 3 с нижним пределом, столбец 5 с измеренным значением.

Я хотел бы нанести измеренное значение для каждого процесса и нарисовать верхний и нижний предел в строке. в примере набора данных я показал только 3 процесса, но на самом деле у меня 14 процессов, и я хочу отобразить их на одной панели. ниже пример изображения,

Sample image Может ли кто-нибудь помочь мне, как я могу начать с этого? Я новичок в R и ggplot.

РЕДАКТИРОВАТЬ: вот пример графика для 1 процесса, он должен выглядеть так:

Expected output

Например, как видно из графика, это для 1 процесса, когда точки внутри с разными цветами являются значениями измерений, с зеленой линией вверху и внизу как нижней и верхней границей, а точки разного цвета указывают разные дни (четверг, пт, сб).

Привет, для вашего графика рассеяния, не могли бы вы уточнить, что вы хотите в качестве осей x и y?

whalea 11.04.2018 13:46

@whalea Я добавил правку для одного процесса

Jenny 11.04.2018 13:54
0
2
143
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование случайных данных

library(lubridate)
library(dplyr)
library(ggplot2)
df <- data.frame(date = as.Date(c("2018-05-04", "2018-05-06", "2018-09-04", "2018-09-07")),
                 process = c("P1", "P1", "P2", "P2"),
                 lower_bound = c(0.5, 0.5, 2.5, 2.5),
                 upper_bound = c(2.5, 2.5, 3.7, 3.7),
                 mv = c(1, 2, 3, 3.2)) %>%
  mutate(wd = wday(date))

ggplot(df) +
  geom_jitter(aes(x = wd, y = mv, col = as.factor(wd)), width = 0.1) +
  geom_line(aes(x = wd, y = lower_bound), colour = 'green') +
  geom_line(aes(x = wd, y = upper_bound), colour = 'green') +
  facet_wrap(~process, ncol = 3)

sample plot

Если я не ошибаюсь, я мог видеть, что вы присвоили оси Y значение верхней и нижней границы?

Jenny 11.04.2018 14:20

также я получаю предупреждающее сообщение (pango-warning: недопустимая строка UTF 8 передана в pango_layout

Jenny 11.04.2018 14:23

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

whalea 11.04.2018 14:29

также, когда я использую mutate, я получаю сообщение об ошибке. Столбец day должен иметь длину 0 (количество строк) или один, а не 119195

Jenny 11.04.2018 14:33

нанесенные линии не очевидны, не могли бы вы сказать мне, как я могу изменить эти цвета

Jenny 11.04.2018 14:40

Я считаю, что из-за ошибки mutate вам не хватает канала %>%, если вы не знакомы с трубопроводом, вам следует использовать mutate(df, wd = wday(date)). Для цветов можно использовать geom_line(colour = 'green'). Подробнее об управлении цветами в ggplot см. ggplot2.tidyverse.org/reference/aes_colour_fill_alpha.html

whalea 11.04.2018 14:45

Да, я исправил ошибку. Просто нарисовать мою верхнюю границу и нижнюю границу я не мог. Я хочу что-то вроде того, что я вам показал

Jenny 11.04.2018 14:48

Я обновил приведенный выше код, данные и ожидаемый график.

whalea 11.04.2018 14:55

Позвольте нам продолжить обсуждение в чате.

Jenny 11.04.2018 15:00

Другие вопросы по теме