pch en R : formes de points pour plot() avec le tableau des symboles pch

Choisissez parmi les 25 symboles de tracé, dimensionnez-les, colorez-les et remplissez-les en R de base

Le tableau de référence complet pch 0-25 pour R, plus comment définir la forme des points, la taille (cex), la couleur de bordure (col) et le remplissage (bg, pour les symboles 21-25) sur un graphique R de base, utiliser un seul caractère comme symbole, et faire correspondre la forme à un facteur de regroupement.

Date de publication

27 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Définissez la forme des points avec pch — un entier de 0 à 25 (le défaut est 1, un cercle ouvert).
  • Les formes se répartissent en trois groupes : 0–14 sont ouvertes, 15–20 sont pleines, 21–25 sont remplissables.
  • Dimensionnez les points avec cex (un multiplicateur : cex = 2 double la taille), colorez le contour avec col.
  • Seuls pch = 21:25 lisent bg — cela définit le remplissage, vous obtenez donc une bordure et un remplissage en deux couleurs.
  • pch accepte aussi un seul caractère (pch = "+", "*", une lettre) pour dessiner ce glyphe à chaque point.

Introduction

Vous avez dessiné un nuage de points et chaque point est le même cercle ouvert. Pour distinguer des groupes, marquer une observation clé, ou simplement correspondre au style d’une revue, vous changez le symbole de tracé — et en R de base c’est un seul argument : pch.

pch (plotting character) prend un entier de 0 à 25, chacun une forme différente. Une poignée de ces formes peuvent être remplies d’une couleur distincte. Vous pouvez aussi passer à pch un caractère littéral pour estamper +, * ou une lettre à chaque point. Cette leçon vous donne le tableau de référence complet, puis parcourt le dimensionnement, la coloration et le remplissage des symboles, et la correspondance d’une forme à chaque groupe.

Vous préférez la grammaire des graphiques ? ggplot2 définit les formes via scale_shape_* et l’attribut esthétique shape — voir formes de points dans la série ggplot2.

Le tableau de référence pch

Le moyen le plus rapide de choisir un symbole est de les voir tous en même temps. Ceci dessine chaque forme de 0 à 25 et étiquette chacune avec son numéro, pour que vous puissiez lire directement l’entier voulu sur le tableau.

# Lay the 26 symbols (0-25) out on a grid
pch  <- 0:25
cols <- 6
x <- (pch %% cols)
y <- -(pch %/% cols)

plot(x, y, pch = pch, cex = 2, lwd = 1.5,
     col = "#3a86d4", bg = "#cfe0f4",
     axes = FALSE, xlab = "", ylab = "",
     xlim = c(-0.5, cols - 0.5), ylim = c(min(y) - 0.5, 0.5))
text(x, y, labels = pch, pos = 3, offset = 0.9, font = 2)

A reference chart of the 25 R plotting symbols, pch 0 to 25, laid out in a grid with each symbol drawn in blue and labelled above with its pch number.

Quelques points à lire dessus. Les symboles 0–14 sont des contours ouvertscol les dessine. 15–20 sont pleinscol remplit toute la forme (il n’y a pas de bordure distincte). 21–25 sont spéciaux : ils ont à la fois un contour (col) et un remplissage (bg), ce qui explique pourquoi les formes bordées ci-dessus montrent un bord bleu autour d’un centre bleu pâle.

Pour ne dessiner aucun point du tout, utilisez pch = NA — pratique quand vous voulez seulement les lignes de liaison.

Ce que signifient les numéros pch

Connaître les trois groupes suffit généralement, mais les formes exactes valent un coup d’œil pour que vous puissiez nommer celle que vous voulez :

pch Formes Comment se comportent col/bg
0–14 Contours ouverts : carré, cercle, triangles, plus, croix, losange, étoile… col = le contour. bg est ignoré.
15–20 Remplissages pleins : carré plein, cercle, triangle, losange, puce… col = tout le remplissage. bg est ignoré.
21–25 Remplissables : cercle, carré, losange, triangle vers le haut, triangle vers le bas col = la bordure, bg = le remplissage.

Les choix de tous les jours : pch = 19 (un cercle plein net) pour un nuage de points standard, pch = 21 quand vous voulez un remplissage coloré et un contour contrasté.

Changer la forme

Passez n’importe quel numéro du tableau à pch. Par défaut plot() utilise pch = 1, le cercle ouvert ; ici nous passons au cercle plein 19.

x <- c(2.2, 3, 3.8, 4.5, 7, 8.5, 6.7, 5.5)
y <- c(4, 5.5, 4.5, 9, 11, 15.2, 13.3, 10.5)

op <- par(mfrow = c(1, 2))
plot(x, y)                 # default: pch = 1, open circle
plot(x, y, pch = 19)       # solid circle

Two side-by-side base R scatter plots of the same eight points: the left uses the default open circle pch 1, the right uses the solid circle pch 19.

par(op)

Les deux graphiques montrent les mêmes données ; seul le symbole a changé. Optez pour un pch plein (15–20) quand les points se chevauchent — un marqueur rempli se lit plus clairement qu’un contour.

Dimensionner avec cex

cex (character expansion) met les symboles à l’échelle. C’est un multiplicateur sur la taille par défaut : cex = 1 est normal, cex = 2 double, cex = 0.5 réduit de moitié.

x <- c(2.2, 3, 3.8, 4.5, 7, 8.5, 6.7, 5.5)
y <- c(4, 5.5, 4.5, 9, 11, 15.2, 13.3, 10.5)

op <- par(mfrow = c(1, 2))
plot(x, y, pch = 19, col = "#3a86d4")              # default size
plot(x, y, pch = 19, col = "#3a86d4", cex = 2)     # double size

Two base R scatter plots of the same points drawn as solid azure circles: the left at default size, the right at double size with cex set to two.

par(op)

cex peut aussi être un vecteur — une valeur par point — pour dimensionner les marqueurs selon une troisième variable (un effet de bulle rapide), par ex. cex = z / max(z) * 3.

Colorer avec col (et bg pour 21–25)

col définit la couleur du symbole. Pour les formes ouvertes et pleines (pch 0–20) c’est tout le symbole. Les formes remplissables (pch 21–25) la divisent en deux : col est la bordure et bg est le remplissage — vous pouvez donc tracer le contour d’une couleur et remplir d’une autre.

x <- c(2.2, 3, 3.8, 4.5, 7, 8.5, 6.7, 5.5)
y <- c(4, 5.5, 4.5, 9, 11, 15.2, 13.3, 10.5)

op <- par(mfrow = c(1, 3))
# One colour for a solid symbol
plot(x, y, pch = 19, col = "darkgreen", cex = 1.6)

# col can be a vector (recycled across points)
plot(x, y, pch = 19, col = c("darkgreen", "red"), cex = 1.6)

# pch 21-25: col = border, bg = fill
plot(x, y, pch = 24, col = "#3a86d4", bg = "red", cex = 2.4, lwd = 2)

Three base R scatter plots of the same points: the first solid green circles, the second a recycled green-and-red colour vector, the third a fillable triangle with a blue border and red fill at double size.

par(op)

Le troisième graphique est l’idée clé : avec pch = 24 (un triangle remplissable), col = "#3a86d4" dessine le contour et bg = "red" le remplit. lwd épaissit ce contour. Essayez le même appel avec pch = 19 et le bg ne fait rien — seuls 21:25 le lisent.

Un seul caractère comme symbole

pch accepte aussi une chaîne de caractères, et R estampe ce glyphe à chaque point. Tout fonctionne : "+", "*", "-", ".", "#", "%", ou une lettre.

set.seed(1234)
x <- rnorm(100)
y <- rnorm(100)

op <- par(mfrow = c(1, 2))
plot(x, y, pch = "+", col = "#3a86d4")
plot(x, y, pch = "o", col = "#3a86d4")

Two base R scatter plots of one hundred random points: the left drawn with plus signs, the right with the letter o, both in azure.

par(op)

pch = "." est un cas particulier — il dessine le plus petit point possible, ce qui est le bon choix pour les très grands nuages où même pch = 19 se chevaucherait jusqu’à former une masse pleine.

Faire correspondre la forme à un groupe

Pour donner à chaque groupe son propre symbole, construisez un vecteur pch de la même longueur que vos données en convertissant un facteur de regroupement en entiers. as.integer(factor) renvoie 1, 2, 3… ; décalez-le (ici + 14) pour atterrir sur des formes pleines qui se lisent bien.

grp <- iris$Species
grp_cols <- c("#3a86d4", "#f4a259", "#5fad56")  # colourblind-safe set
grp_pch  <- c(15, 16, 17)                        # square, circle, triangle

plot(iris$Sepal.Width, iris$Sepal.Length,
     pch = grp_pch[as.integer(grp)],
     col = grp_cols[as.integer(grp)],
     cex = 1.4,
     xlab = "Sepal width (cm)", ylab = "Sepal length (cm)")

legend("topright",
       legend = levels(grp),
       pch = grp_pch,
       col = grp_cols)

A base R scatter plot of iris sepal length against width, the three species drawn with three distinct solid symbols in three colourblind-safe colours, with a top-right legend.

as.integer(grp) transforme les espèces en 1, 2, 3, et nous indexons nos vecteurs grp_pch / grp_cols avec — donc chaque point reçoit le symbole et la couleur de son groupe. La legend() répète les mêmes pch et col dans l’ordre des niveaux du facteur pour que la légende corresponde. (Voir Ajouter une légende pour les détails de la légende.)

Essayez en direct

Changez le numéro pch, les couleurs ou cex et appuyez sur Run — cela s’exécute dans votre navigateur via webR, sans installation.

🟢 Avec un agent IA

Demandez à Prova « pourquoi ma couleur de remplissage bg pch est-elle ignorée ? » — elle répond avec du code R de base que vous pouvez exécuter, donc la correction est reproductible. The runtime is the judge. Demander à Prova →

Problèmes courants

bg n’a aucun effet sur mes points. bg définit le remplissage, et seuls les symboles remplissables le lisent — pch doit être 21, 22, 23, 24 ou 25. Avec tout autre pch (0–20) l’argument est silencieusement ignoré ; le symbole prend sa couleur de col seul. Passez à pch = 21 (un cercle remplissable) pour obtenir une bordure (col) plus un remplissage (bg).

Chaque groupe est sorti avec la même forme. Vous avez passé une seule valeur pch, donc tous les points la partagent. Pour faire varier le symbole il vous faut un pch vecteur de la longueur de vos données — construisez-le en indexant une table de correspondance avec le groupe, grp_pch[as.integer(factor)], et non en passant directement le facteur à pch.

Questions fréquentes

pch signifie plotting character — l’argument qui définit le symbole de point dans les graphiques R de base. Il prend un entier de 0 à 25 (chacun une forme différente) ou un seul caractère comme "+" ou "*". Le défaut est pch = 1, un cercle ouvert.

pch = 1, un cercle ouvert. Changez-le en passant un autre numéro, par ex. plot(x, y, pch = 19) pour un cercle plein.

Utilisez un symbole remplissable — pch 21 à 25 — et définissez bg pour le remplissage et col pour la bordure, par ex. plot(x, y, pch = 21, col = "black", bg = "red"). Pour pch 0–20, bg est ignoré et col colore tout le symbole.

col est le contour du symbole (et, pour les symboles pleins 15–20, tout le remplissage). bg est la couleur de remplissage de fond, lue uniquement par les symboles pch = 21:25. Ensemble ils permettent à ces cinq symboles de montrer une bordure et un remplissage en deux couleurs différentes.

Définissez cex — il met à l’échelle la taille du symbole. cex = 2 la double, cex = 0.5 la réduit de moitié. Passez un vecteur de valeurs cex (une par point) pour dimensionner les marqueurs selon une troisième variable.

Testez vos connaissances

Le graphique ci-dessous utilise un cercle plein. Changez-le en un symbole remplissable avec une bordure bleu foncé et un remplissage orange, en taille double, avec un contour plus épais.

Une bordure et un remplissage signifie un symbole remplissable — choisissez un pch dans la plage 21:25. Ensuite col est la bordure, bg le remplissage, cex la taille et lwd la largeur du contour.

plot(x, y, pch = 21, col = "darkblue", bg = "orange", cex = 2, lwd = 2)

pch = 21 est un cercle remplissable, donc col dessine la bordure et bg le remplissage ; cex = 2 double la taille et lwd = 2 épaissit le contour.

Vérification rapide. Vous définissez pch = 17 et une couleur bg, mais le remplissage ne change jamais. Pourquoi ?

pch = 17 est un triangle plein (dans le groupe 15–20), et bg est lu uniquement par pch = 21:25. Utilisez pch = 24 (un triangle remplissable) si vous avez besoin d’une bordure et d’un remplissage distincts.

Conclusion

pch est l’argument unique pour les formes de points en R de base : un entier 025, ou un caractère pour estamper un glyphe. Souvenez-vous des trois groupes — ouvert (0–14), plein (15–20), remplissable (21–25, les seuls qui lisent bg) — dimensionnez avec cex, colorez avec col, et construisez un vecteur pch pour donner à chaque groupe son propre symbole.

Leçons connexes

Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série R Base Graphics — suivez votre parcours, construisez des projets et obtenez un certificat.

Commencer gratuitement →

Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.

dès 15 $/mois facturé annuellement

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

Recevez les nouvelles leçons R & Python par e-mail

Pratique, reproductible, sans spam. Désinscription à tout moment.

Double opt-in. Nous ne partageons jamais votre e-mail.

Partager cette pageXLinkedInRedditHN
Note

Cette leçon est reproductible : chaque figure a été produite par le code affiché, exécuté lors de la génération du site (si elles s’affichent, le code fonctionne), et le bac à sable se réexécute en direct dans votre navigateur. Modifiez n’importe quel bloc et appuyez sur Run. The runtime is the judge.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {pch en R : formes de points pour plot() avec le tableau des
    symboles pch},
  date = {2026-06-27},
  url = {https://www.datanovia.com/learn/data-visualization/r-base/pch-symbols},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“pch en R : formes de points pour plot() avec le tableau des symboles pch.” 2026. June 27. https://www.datanovia.com/learn/data-visualization/r-base/pch-symbols.