#r #ggplot2
#r #ggplot2
Вопрос:
Я работаю над добавлением другой средней линии (с использованием другого цвета) для уровня депрессии для другой группы политик в существующую точечную диаграмму. Например, если я хочу добавить среднюю линию депрессии для неограниченной группы.
Это мой набор данных, который снимается случайным образом:
мой правильный код выглядит так:
ggplot(covid_depression_2020_policy, aes(x = Location, y = Depression.2020, color = `Large Gatherings Ban`))
geom_point(alpha=0.8)
Комментарии:
1. К вашему сведению, вы вставили в два раза больше данных вместо своей диаграммы.
2. Я думаю, вы можете найти ответ на этот вопрос с помощью небольшого исследования. Я приведу ответ ниже, но я настоятельно рекомендую прочитать любое введение в учебные пособия ggplot2.
Ответ №1:
Линия наилучшего соответствия с использованием geom_smooth()
Чтобы добавить средние линии в точечную диаграмму ggplot, вы можете использовать geom_smooth()
, что дает «сглаженные условные средние» или линию, наилучшим образом подходящую для заданных условий.
ggplot(covid_depression_2020_policy,
aes(x = Location, y = Depression.2020, color = `Large Gatherings Ban`))
geom_point(alpha=0.8)
geom_smooth()
Для каждой группы «Запрет на большие собрания» будет создана линия другого цвета из-за color = `Large Gatherings Ban`
аргумента, указанного в ggplot()
эстетике (т.е. aes(...)
).
Если вам нужна строка только для Large Gatherings Ban == "No Limit"
, вы можете указать ее в данных для geom_smooth()
, например:
geom_smooth(data = dplyr::filter(covid_depression_2020_policy, `Large Gatherings Ban` == "No Limit"))
dplyr::filter()
используется для подмножества строк в наборе данных таким образом, чтобы выполнялись только условия столбцов.
В зависимости от того, как вы пытаетесь визуализировать данные, некоторые общие аргументы, используемые в geom_smooth(...)
includes method = lm
(для наилучшего соответствия прямой линии) или se = FALSE
(для удаления ленты доверительного интервала по умолчанию). Запустите ?ggplot2::geom_smooth()
, чтобы увидеть дополнительные параметры.
Средняя горизонтальная линия с использованием geom_hline()
Возможно, вы захотите создать среднюю линию, у которой нет наклона, потому что ваше «Местоположение» является номинальной категориальной переменной без значимого порядка. Таким образом, наличие наклона здесь не имеет смысла. В этом случае вы можете использовать geom_hline()
для построения горизонтальной линии для каждой группы «Запрет на большие собрания».
ggplot(covid_depression_2020_policy,
aes(x = Location, y = Depression.2020, color = `Large Gatherings Ban`))
geom_point(alpha=0.8)
geom_hline(
data = dplyr::filter(covid_depression_2020_policy, `Large Gatherings Ban` == "No Limit"),
aes(yintercept = mean(Depression.2020), color = `Large Gatherings Ban`))
geom_hline(
data = dplyr::filter(covid_depression_2020_policy, `Large Gatherings Ban` == ">50 Prohibited"),
aes(yintercept = mean(Depression.2020), color = `Large Gatherings Ban`))
geom_hline(...)
получается только одна строка, поэтому вам придется добавлять ее для каждой группы «Запрет на большие собрания».