Como agrupar por duas colunas no ggplot2 (com exemplo)


Você pode usar a seguinte sintaxe básica para agrupar por duas colunas ao criar um gráfico no ggplot2:

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

Este código específico produz um gráfico linear onde os pontos são agrupados pelas colunas var3 e var4 no quadro de dados.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: agrupar por duas colunas em ggplot2

Suponha que temos o seguinte quadro de dados em R que mostra o total de vendas ao longo de várias semanas em duas lojas diferentes quando duas promoções diferentes foram realizadas:

 #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

Podemos usar o código a seguir para criar um gráfico de linhas no ggplot2 no qual os valores dos dados são agrupados por colunas de loja e promoção :

 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()

grupo ggplot por duas colunas

O resultado é um gráfico de linhas em que cada linha representa os valores de vendas de cada combinação de loja e promoção .

Em particular, as quatro linhas representam os valores de venda para as seguintes combinações:

  • Promoção 1 na loja A
  • Promoção 2 na loja A
  • Promoção 1 na loja B
  • Promoção 1 na loja B

As duas legendas na lateral do gráfico indicam quais linhas representam quais combinações.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns no ggplot2:

Como girar rótulos de eixo no ggplot2
Como definir quebras de eixo no ggplot2
Como definir limites de eixo no ggplot2
Como alterar os rótulos das legendas no ggplot2

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *