Desenhe itens de legenda com cores diferentes em R

Jinku Hu 30 janeiro 2023
  1. Use a função legend para adicionar legenda a gráficos em R
  2. Use Chamada Dupla legend para desenhar itens de legenda com cores diferentes
Desenhe itens de legenda com cores diferentes em R

Este artigo demonstrará como desenhar itens de legenda com cores diferentes em R.

Use a função legend para adicionar legenda a gráficos em R

A função legend é usada para desenhar objetos de legenda nos gráficos. Leva as coordenadas x e y como os dois primeiros argumentos para especificar a posição da legenda. Embora, ele possa ser especificado usando palavras-chave como: "left", "bottomright", etc. O próximo parâmetro é chamado de legend e é representado como um vetor de caracteres que precisam ser exibidos na legenda . Neste caso, desenhamos linhas e pontos denotados por uma forma de triângulo ou círculo. Linhas e pontos têm cores diferentes e precisam ser exibidos na legenda de acordo. O trecho de código a seguir desenha apenas formas e texto na legenda.

library(ggplot2)

plot( 0, type = "n", xlim = c(0,5), ylim = c(0,5) )
A <- matrix( c( c(4,1,3,2), c(1,3,4,4)), ncol = 2 )
B <- matrix( c( c(1,4,3,2), c(1,3,1,1)), ncol = 2 )

lines( A, col = "brown" )
points( A, col = "blue", pch = 17 )
lines( B, col = "cyan" )
points( B, col = "purple", pch = 19 )


legend( x = "topleft",
        legend = c("Brown line, blue triangles","Cyan line, purple points"),
        col = c("blue","purple"), lwd = 2, lty = c(0,0),
        pch = c(17,19) )

r plot legend 1

Também podemos adicionar linhas aumentando os valores do vetor de argumentos lty. Observe que aqueles correspondem à linha reta e ininterrupta. Por outro lado, os argumentos pch representam os símbolos de plotagem que mapeiam para valores inteiros 0:25 e são descritos na documentação da função points.

library(ggplot2)

plot( 0, type = "n", xlim = c(0,5), ylim = c(0,5) )
A <- matrix( c( c(4,1,3,2), c(1,3,4,4)), ncol = 2 )
B <- matrix( c( c(1,4,3,2), c(1,3,1,1)), ncol = 2 )

lines( A, col = "brown" )
points( A, col = "blue", pch = 17 )
lines( B, col = "cyan" )
points( B, col = "purple", pch = 19 )

legend( x = "topleft",
        legend = c("Brown line, blue triangles","Cyan line, purple points"),
        col = c("brown","cyan"), lwd = 1, lty = c(1,1),
        pch = c(17,19), merge = FALSE)

r plot legend 2

Use Chamada Dupla legend para desenhar itens de legenda com cores diferentes

O exemplo anterior exibe as linhas e formas de um único item com a mesma cor. Isso pode ser resolvido pelas duas invocações da função legend, cada uma das quais exibe linhas e formas separadamente com cores diferentes. Lembre-se, porém, de que uma das chamadas deve ter valores de vetor vazios para o parâmetro legend.

library(ggplot2)

plot( 0, type = "n", xlim = c(0,5), ylim = c(0,5) )
A <- matrix( c( c(4,1,3,2), c(1,3,4,4)), ncol = 2 )
B <- matrix( c( c(1,4,3,2), c(1,3,1,1)), ncol = 2 )

lines( A, col = "brown" )
points( A, col = "blue", pch = 17 )
lines( B, col = "cyan" )
points( B, col = "purple", pch = 19 )


legend( x = "topleft",
        legend = c("Brown line, blue triangles","Cyan line, purple points"),
        col = c("brown","cyan"), lwd = 1, lty = c(1,1),
       pch = c(NA,NA) )

legend( x = "topleft",
        legend = c("",""),
        col = c("blue","purple"), lwd = 1, lty = c(0,0),
        pch = c(17,19), bty= 'n')

r plot legend 3

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - R Plot