Como criar uma legenda horizontal na base r (2 métodos)
Você pode usar os seguintes métodos para criar uma legenda horizontal em um gráfico R base:
Método 1: use o argumento horizontal
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '), horiz= TRUE , inset=c(0, -.1), xpd= TRUE )
Este exemplo específico cria uma legenda horizontal abaixo do gráfico em que cada elemento da legenda está na mesma linha.
Método 2: use o argumento ncol
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '), ncol=3, inset=c(0, -.15), xpd= TRUE )
Este exemplo específico cria uma legenda horizontal abaixo do gráfico com três colunas.
O argumento insert(x, y) controla a localização da legenda. Usando valores negativos para o valor y, podemos empurrar a legenda para fora do gráfico.
O argumento xpd=TRUE nos permite colocar a legenda fora do gráfico enquanto permanece visível na área do gráfico.
Os exemplos a seguir mostram como usar cada método na prática.
Exemplo 1: use o argumento horiz para criar uma legenda horizontal na base R
O código a seguir mostra como usar o argumento horiz=TRUE na função legend() para criar uma legenda horizontal na parte inferior de um gráfico R base:
#create vector of values
data <- c(4, 10, 7, 5, 4, 3)
#specify fill colors to use
fill_cols <- c(' red ', ' pink ', ' blue ', ' green ', ' purple ', ' brown ')
#create bar plot to visualize values in vector
barplot(data, col=fill_cols)
#add legend to bottom of plot
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '),
horiz= TRUE , inset=c(0, -.1), xpd= TRUE )
Observe que uma legenda horizontal foi criada e colocada na parte inferior do gráfico.
Sinta-se à vontade para brincar com os valores do argumento inserido para ajustar também a localização da legenda.
Por exemplo, podemos tornar o valor y do argumento inserido ainda mais negativo para diminuir ainda mais a legenda:
#create vector of values
data <- c(4, 10, 7, 5, 4, 3)
#specify fill colors to use
fill_cols <- c(' red ', ' pink ', ' blue ', ' green ', ' purple ', ' brown ')
#create bar plot to visualize values in vector
barplot(data, col=fill_cols)
#add legend to bottom of plot
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '),
horiz= TRUE , inset=c(0, -.2), xpd= TRUE )
Observe que a legenda horizontal foi empurrada ainda mais abaixo do gráfico.
Exemplo 2: use o argumento ncol para criar uma legenda horizontal na base R
O código a seguir mostra como usar o argumento ncol na função legend() para criar uma legenda horizontal com três colunas na parte inferior de um gráfico R base:
#create vector of values
data <- c(4, 10, 7, 5, 4, 3)
#specify fill colors to use
fill_cols <- c(' red ', ' pink ', ' blue ', ' green ', ' purple ', ' brown ')
#create bar plot to visualize values in vector
barplot(data, col=fill_cols)
#add legend to bottom of plot
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '),
ncol=3, inset=c(0, -.15), xpd= TRUE )
Observe que uma legenda horizontal de três colunas foi criada e colocada na parte inferior do gráfico.
Sinta-se à vontade para modificar o valor do argumento ncol para criar uma legenda com um número diferente de colunas.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como alterar o tamanho da legenda no gráfico Base R
Como desenhar uma legenda fora de um gráfico em R
Como alterar a posição da legenda em gráficos R básicos