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