Como alterar o espaçamento entre itens de legenda no ggplot2


Você pode usar os seguintes métodos para alterar o espaçamento entre os elementos da legenda no ggplot2:

Método 1: alterar o espaçamento horizontal

 p+
  theme(legend. spacing . x = unit(1, ' cm '))

Método 2: alterar o espaçamento vertical

 p+
  theme(legend. spacing . y = unit(1, ' cm ')) +
  guides(fill = guide_legend(byrow = TRUE ))

Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados:

 #create data frame
df <- data. frame (team=c('Mavs', 'Heat', 'Nets', 'Lakers', 'Suns', 'Cavs'),
                 points=c(24, 20, 34, 39, 28, 29),
                 assists=c(5, 7, 6, 9, 12, 13))

#view data frame
df

    team points assists
1 Mavs 24 5
2 Heat 20 7
3 Nets 34 6
4 Lakers 39 9
5 Suns 28 12
6 Cavs 29 13

Exemplo 1: Alterar o espaçamento horizontal entre os elementos da legenda

O código a seguir mostra como criar um gráfico de dispersão em ggplot2 com uma legenda horizontal com espaçamento padrão:

 library (ggplot2)

#create scatterplot with default spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. position = ' bottom ')

Para aumentar o espaçamento horizontal entre os elementos da legenda, podemos usar o argumento legend.spacing.x :

 library (ggplot2)

#create scatterplot with increased horizontal spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. position = ' bottom ',
        legend. spacing . x = unit(1, ' cm ')) 

ggplot2 aumentou o espaçamento horizontal entre os elementos da legenda

Observe que o espaçamento horizontal entre os elementos da legenda aumentou.

Quanto maior o valor usado na função unit() , maior será o espaçamento entre os elementos.

Exemplo 2: Alterar o espaçamento vertical entre os elementos da legenda

O código a seguir mostra como criar um gráfico de dispersão em ggplot2 com uma legenda vertical com espaçamento padrão:

 library (ggplot2)

#create scatterplot with default spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 )

Para aumentar o espaçamento vertical entre os elementos da legenda, podemos usar o argumento legend.spacing.y :

 library (ggplot2)

#create scatterplot with increased vertical spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. spacing . y = unit(1, ' cm ')) +
  guides(fill = guide_legend(byrow = TRUE )) 

ggplot2 aumenta o espaçamento vertical entre os elementos da legenda

Observe que o espaçamento vertical entre os elementos da legenda aumentou.

Quanto maior o valor usado na função unit() , maior será o espaçamento entre os elementos.

Nota : Você deve incluir a última linha que utiliza o argumento byrow = TRUE , caso contrário os elementos da legenda não serão espaçados conforme o esperado.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no ggplot2:

Como alterar o título da legenda no ggplot2
Como alterar o tamanho da legenda no ggplot2
Como alterar a posição da legenda no ggplot2

Add a Comment

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