Создание графика для отображения значений для разных групп

#r #plot

#r #график

Вопрос:

ПРИВЕТ, извините, если об этом спрашивали раньше, я пытаюсь отобразить следующие данные под названием Users.age: Набор данных

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

Комментарии:

1. Сначала вам нужно будет изменить размер ваших данных с широкого на длинный. Смотрите: tidyr.tidyverse.org/articles/pivot.html Также, пожалуйста, не делайте скриншотов ваших данных. Вместо этого используйте dput() и вставляйте выходные данные.

Ответ №1:

Вот небольшой пример того, как вы могли бы применить tidyr::pivot_longer и ggplot для создания желаемого графика.

 library(ggplot2)
data <- data.frame(age= c("16-24", "25-34", "35-44", "45-54"), 
                   "y2014" = c(100,200,300,400),
                   "y2015" = c(250,350,450,550),
                   "y2016" = c(240, 340,440,550))

dataLong <- tidyr::pivot_longer(data, cols=c("y2014", "y2015", "y2016"))
dataLong$year <- as.numeric(sub(".", "", dataLong$name))

ggplot(dataLong)  
  geom_point(aes(x=year, y=value, col=age))
  #   geom_line(aes(x=year, y=value, col=age)) if you would like to have lines instead of points
  
 

Комментарии:

1. я сделал это, и это выглядит действительно красиво 🙂 Мне просто нужно выяснить, как теперь добавить все мои многочисленные линии линейной регрессии к графику

2. вы можете использовать что-то вроде: geom_smooth(aes(x=year, y=value, group=age, col=age), method=lm, se=FALSE)