Existe uma maneira de alterar o espaçamento entre os itens de legenda no ggplot2? Eu atualmente tenho
legend.position ="top"
que produz automaticamente uma legenda horizontal. No entanto, o espaçamento dos itens é muito próximo e estou me perguntando como espaçá-los ainda mais.
opts
está depreciado.Respostas:
ggplot2 v3.0.0
lançado em julho 2018 tem opções de trabalho para modificarlegend.spacing.x
,legend.spacing.y
elegend.text
.Exemplo: aumentar o espaçamento horizontal entre as chaves da legenda
Nota: Se você deseja apenas expandir o espaçamento à direita do texto da legenda, use
stringr::str_pad()
Exemplo: mova os rótulos das teclas de legenda para a parte inferior e aumente o espaçamento vertical
Exemplo: para
scale_fill_xxx
&guide_colorbar
Para legendas verticais , a configuração
legend.key.size
apenas aumenta o tamanho das chaves da legenda, não o espaço vertical entre elasPara aumentar a distância entre as teclas de legenda,
legend-draw.r
é necessária a modificação da função. Veja este problema para mais informaçõesfonte
Acho que a melhor opção é usar
guide_legend
emguides
:Observe o uso de
default.unit
, sem necessidade de carregar ogrid
pacote.fonte
Uma correção simples que eu uso para adicionar espaço em legendas horizontais, basta adicionar espaços nos rótulos (ver trecho abaixo):
fonte
scale_fill_manual(values=values, labels=setNames(paste(labels, " "), entries))
.Agora que
opts
está obsoleto noggplot2
pacote, a funçãotheme
deve ser usada em seu lugar:fonte
Para adicionar espaçamento entre as entradas em uma legenda, ajuste as margens do elemento do tema
legend.text
.Para adicionar 30pt de espaço à direita de cada rótulo de legenda (pode ser útil para uma legenda horizontal):
Para adicionar 30pt de espaço à esquerda de cada rótulo de legenda (pode ser útil para uma legenda vertical):
para um
ggplot2
objetop
. As palavras-chave sãolegend.text
emargin
.[Nota sobre a edição: quando esta resposta foi postada pela primeira vez, havia um bug. O bug foi corrigido]
fonte
Parece que a melhor abordagem (em 2018) é usar
legend.key.size
sob otheme
objeto. (por exemplo, veja aqui ).Isso é muito fácil se você estiver usando
theme_bw()
:No entanto, isso não funciona tão bem de outra forma (por exemplo, se você precisar do fundo cinza no símbolo da legenda):
Observe que os quadrados brancos começam a bloquear o título da legenda (e, eventualmente, o próprio gráfico, se continuarmos aumentando o valor).
Ainda não encontrei uma solução alternativa para corrigir o problema acima ... Deixe-me saber nos comentários se você tiver uma ideia e eu atualizarei de acordo!
$layers
...fonte
legend.key
transparente:theme(legend.key = element_rect(size = 30,color=alpha("transparent",0)))
Do trabalho de Koshke no ggplot2 e seu blog (blog de Koshke )
Digite
theme_get()
no console para ver outros atributos de legenda editáveis.fonte
Use qualquer um destes
fonte