Modifier les étiquettes de coche de l'axe X de ggplot dans R
-
Utilisez
scale_x_discrete
pour modifier les étiquettes de coche de l’axe Xggplot
dans R -
Utilisez
scale_x_discrete
avec la fonction personnalisée pour modifier les étiquettes de coche de l’axe Xggplot
dans R
Cet article présentera comment modifier les étiquettes de graduation de l’axe des x ggplot
dans R.
Utilisez scale_x_discrete
pour modifier les étiquettes de coche de l’axe X ggplot
dans R
scale_x_discrete
avec scale_y_discrete
sont utilisés pour une manipulation avancée des étiquettes et des limites d’échelle de tracé. Dans ce cas, nous utilisons scale_x_discrete
pour modifier les étiquettes de graduation de l’axe x
pour les objets ggplot
. Notez que le premier objet ggplot
est un graphique à barres basé sur l’ensemble de données diamonds
. Le graphique utilise la colonne cut
et trace le nombre de chaque type sur l’axe y
. L’axe x
a le titre par défaut - cut
, qui peut être modifié en passant la chaîne comme premier argument de scale_x_discrete
. Alternativement, nous pouvons transmettre des valeurs de chaîne spécifiques pour chaque étiquette en construisant un vecteur et en l’affectant au paramètre labels
. Les deux graphiques sont tracés côte à côte à l’aide de la fonction grid.arrange
, qui fait partie du package gridExtra
.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
grid.arrange(p1, p2, ncol = 2)
Une autre méthode utile pour modifier les étiquettes sur l’axe x
consiste à passer un objet fonction en tant que paramètre labels
. L’extrait de code suivant utilise la fonction abbreviate
pour raccourcir automatiquement les étiquettes, puis tracer des graphiques sur deux colonnes.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
p3 <- p1 + scale_x_discrete("Cut Type", labels = abbreviate)
grid.arrange(p2, p3, ncol = 2)
scale_x_discrete
fonctionne de manière similaire sur différents graphiques, et la technique de manipulation d’étiquette est applicable, comme indiqué dans l’exemple suivant. A savoir, plusieurs nuages de points sont tirés de l’ensemble de données mpg
.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point()
p2 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point() +
scale_x_discrete(labels = abbreviate)
p3 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point(colour = "blue") +
scale_x_discrete(labels = abbreviate)
grid.arrange(p1, p2, p3, nrow = 3)
Utilisez scale_x_discrete
avec la fonction personnalisée pour modifier les étiquettes de coche de l’axe X ggplot
dans R
Le paramètre scale_x_discrete
labels
peut prendre un objet de fonction personnalisé pour modifier chaque étiquette de graduation en conséquence. Dans ce cas, nous avons implémenté la fonction capitalize_all
qui abrège d’abord chaque étiquette, puis convertit le caractère de début de la chaîne en majuscule. Notez que les fonctions intégrées paste
, toupper
, substring
et abbreviate
sont utilisées pour implémenter la fonctionnalité capitalize_all
, mais un examen complet de ces méthodes est hors de portée de cet article. Les pages de manuel peuvent être affichées en utilisant la notation ?function_name
dans la console R.
library(ggplot2)
library(gridExtra)
capitalize_all <- Vectorize(function(x) {
s <- abbreviate(x)
paste(toupper(substring(s, 1,1)), substring(s, 2), sep="", collapse=" ")
})
ggplot(mpg, aes(manufacturer, cty)) + geom_point(aes(colour = trans)) +
scale_x_discrete(labels = capitalize_all)
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