Dessinez des éléments de légende avec des couleurs différentes dans R

Jinku Hu 15 février 2024
  1. Utilisez la fonction legend pour ajouter une légende aux tracés dans R
  2. Utilisez le double appel legend pour dessiner des éléments de légende avec des couleurs différentes
Dessinez des éléments de légende avec des couleurs différentes dans R

Cet article montrera comment dessiner des éléments de légende avec différentes couleurs dans R.

Utilisez la fonction legend pour ajouter une légende aux tracés dans R

La fonction legend permet de dessiner des objets de légende sur les tracés. Il prend les coordonnées x et y comme les deux premiers arguments pour spécifier la position de la légende. Cependant, il peut être spécifié à l’aide de mots-clés tels que : "left", "bottomright", etc. Le paramètre suivant s’appelle legend, et il est représenté comme un vecteur de caractères qui doivent être affichés dans la légende . Dans ce cas, nous dessinons des lignes et des points indiqués par une forme de triangle ou de cercle. Les lignes et les points ont des couleurs différentes et doivent être affichés dans la légende en conséquence. L’extrait de code suivant dessine uniquement des formes et du texte dans la légende.

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 légende de l&rsquo;intrigue 1

On peut aussi ajouter des lignes en augmentant les valeurs du vecteur d’argument lty. Notez que les uns correspondent à la ligne droite et ininterrompue. D’autre part, les arguments pch représentent les symboles de tracé qui correspondent aux valeurs entières 0:25 et sont décrits dans la documentation de la fonction 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 légende de l&rsquo;intrigue 2

Utilisez le double appel legend pour dessiner des éléments de légende avec des couleurs différentes

L’exemple précédent affiche les lignes et les formes d’un seul élément avec la même couleur. Cela peut être résolu par les deux invocations de la fonction legend, dont chacune affiche des lignes et des formes séparément avec des couleurs différentes. Attention cependant, l’un des appels doit avoir des valeurs vectorielles vides pour le paramètre 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 légende de l&rsquo;intrigue 3

Auteur: 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

Article connexe - R Plot