У меня есть набор данных, содержащий 25 переменных и 112095 наблюдений.
Я пытаюсь построить график с 5 переменными.
На изображении вы могли видеть, что у меня есть дата в 1 столбце, типы процессов в столбце 2, столбец 4 с верхним пределом и столбец 3 с нижним пределом, столбец 5 с измеренным значением.
Я хотел бы нанести измеренное значение для каждого процесса и нарисовать верхний и нижний предел в строке. в примере набора данных я показал только 3 процесса, но на самом деле у меня 14 процессов, и я хочу отобразить их на одной панели. ниже пример изображения,
Может ли кто-нибудь помочь мне, как я могу начать с этого? Я новичок в R и ggplot.
Обновлено: вот пример графика для 1 процесса, он должен выглядеть так:
Например, как видно из графика, это для 1 процесса, когда точки внутри с разными цветами являются значениями измерений, с зеленой линией вверху и внизу как нижней и верхней границей, а точки разного цвета указывают разные дни (четверг, пт, сб).
@whalea Я добавил правку для одного процесса
Использование случайных данных
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)
Если я не ошибаюсь, я мог видеть, что вы присвоили оси Y значение верхней и нижней границы?
также я получаю предупреждающее сообщение (pango-warning: недопустимая строка UTF 8 передана в pango_layout
он не назначает ось y, а строит линию и использует верхнюю и нижнюю границы в качестве значений y. для панго-предупреждения это может быть связано с настройкой вашей среды ...
также, когда я использую mutate, я получаю сообщение об ошибке. Столбец day
должен иметь длину 0 (количество строк) или один, а не 119195
нанесенные линии не очевидны, не могли бы вы сказать мне, как я могу изменить эти цвета
Я считаю, что из-за ошибки mutate
вам не хватает канала %>%
, если вы не знакомы с трубопроводом, вам следует использовать mutate(df, wd = wday(date))
. Для цветов можно использовать geom_line(colour = 'green')
. Подробнее об управлении цветами в ggplot
см. ggplot2.tidyverse.org/reference/aes_colour_fill_alpha.html
Да, я исправил ошибку. Просто нарисовать мою верхнюю границу и нижнюю границу я не мог. Я хочу что-то вроде того, что я вам показал
Я обновил приведенный выше код, данные и ожидаемый график.
Позвольте нам продолжить обсуждение в чате.
Привет, для вашего графика рассеяния, не могли бы вы уточнить, что вы хотите в качестве осей x и y?