Como alterar a ordem das facetas no ggplot2 (com exemplo)


Você pode usar a seguinte sintaxe básica para especificar a ordem das facetas no ggplot2:

 p+
  facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))

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

Exemplo: altere a ordem das facetas no ggplot2

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 points=c(8, 14, 20, 22, 25, 29, 30, 31),
                 assists=c(10, 5, 5, 3, 8, 6, 9, 12))

#view data frame
df

  team points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12

O código a seguir mostra como usar facet_grid() para criar uma grade que exibe um gráfico de dispersão de assistências versus pontos para cada equipe:

 library (ggplot2)

#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
  geom_point() +
  facet_grid(.~team)

Por padrão, ggplot2 coloca os gráficos de dispersão em ordem com base nos valores que aparecem primeiro na variável de equipe do quadro de dados.

Entretanto, podemos converter equipe em uma variável de fator e usar o argumento de níveis para especificar a ordem em que as equipes devem ser colocadas no gráfico:

 library (ggplot2)

#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
  geom_point() +
  facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B '))) 

alterar a ordem das facetas no ggplot2

Observe que as nuvens de pontos agora estão ordenadas de acordo com a ordem especificada no argumento dos níveis : C, D, A, B.

A vantagem de usar essa abordagem é que na verdade não alteramos os dados subjacentes.

Em vez disso, alteramos apenas os níveis na função facet_grid() .

Recursos adicionais

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

Como alterar o tamanho da fonte no ggplot2
Como remover uma legenda no ggplot2
Como girar rótulos de eixo no ggplot2

Add a Comment

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