Как сгруппировать по двум столбцам в ggplot2 (с примером)


Вы можете использовать следующий базовый синтаксис для группировки по двум столбцам при создании графика в ggplot2:

 ggplot(df, aes(x=var1, y=var2, color=var3, shape=var4,
       group=interaction(var3, var4))) + 
  geom_point() +
  geom_line()

Этот конкретный код создает линейный график, на котором точки группируются по столбцам var3 и var4 в фрейме данных.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: группировка по двум столбцам в ggplot2

Предположим, у нас есть следующий фрейм данных в R, который показывает общий объем продаж за несколько недель в двух разных магазинах, когда проводились две разные рекламные акции:

 #create data frame
df <- data. frame (store=rep(c(' A ', ' B '), each= 8 ),
                 promo=rep(c(' Promo 1 ', ' Promo 2 '), each= 4 , times= 2 ),
                 week=rep(c(1:4), times= 4 ),
                 sales=c(1, 2, 6, 7, 2, 3, 5, 6, 3, 4, 7, 8, 3, 5, 8, 9))

#view data frame
df

   store promo week sales
1 A Promo 1 1 1
2 A Promo 1 2 2
3 A Promo 1 3 6
4 A Promo 1 4 7
5 A Promo 2 1 2
6 A Promo 2 2 3
7 A Promo 2 3 5
8 A Promo 2 4 6
9 B Promo 1 1 3
10 B Promo 1 2 4
11 B Promo 1 3 7
12 B Promo 1 4 8
13 B Promo 2 1 3
14 B Promo 2 2 5
15 B Promo 2 3 8
16 B Promo 2 4 9

Мы можем использовать следующий код для создания линейной диаграммы в ggplot2, в которой значения данных сгруппированы по столбцам магазинов и рекламных акций :

 library (ggplot2)

#create line plot with values grouped by store and promo
ggplot(df, aes(x=week, y=sales, color=store, shape=promo,
               group=interaction(store, promo))) + 
  geom_point(size= 3 ) +
  geom_line()

группа ggplot по двум столбцам

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

В частности, четыре строки представляют значения продаж для следующих комбинаций:

  • Промо 1 в магазине А
  • Промо 2 в магазине А
  • Промо 1 в магазине Б
  • Промо 1 в магазине Б

Две легенды сбоку от графика указывают, какие линии представляют какие комбинации.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:

Как повернуть метки осей в ggplot2
Как установить разрывы осей в ggplot2
Как установить пределы оси в ggplot2
Как изменить метки легенды в ggplot2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *