добавление другой линии в существующую точечную диаграмму

#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(...) получается только одна строка, поэтому вам придется добавлять ее для каждой группы «Запрет на большие собрания».

Смотрите Здесь руководство по ggplot2.