Modifica le etichette di spunta dell'asse X di ggplot in R

Jinku Hu 14 luglio 2021
  1. Usa scale_x_discrete per modificare le etichette di spunta dell’asse X ggplot in R
  2. Usa scale_x_discrete con la funzione personalizzata per modificare le etichette di spunta dell’asse X ggplot in R
Modifica le etichette di spunta dell'asse X di ggplot in R

Questo articolo introdurrà come modificare le etichette di spunta dell’asse x ggplot in R.

Usa scale_x_discrete per modificare le etichette di spunta dell’asse X ggplot in R

scale_x_discrete insieme a scale_y_discrete sono usati per la manipolazione avanzata delle etichette e dei limiti della scala del grafico. In questo caso, utilizziamo scale_x_discrete per modificare le etichette tick dell’asse x per gli oggetti ggplot. Nota che il primo oggetto ggplot è un grafico a barre basato sul set di dati diamonds. Il grafico utilizza la colonna cut e traccia il conteggio di ciascun tipo sull’asse y. L’asse x ha il titolo predefinito - cut, che può essere modificato passando la stringa come primo argomento di scale_x_discrete. In alternativa, possiamo passare valori di stringa specifici per ogni etichetta costruendo un vettore e assegnandolo al parametro labels. Entrambi i grafici sono disegnati fianco a fianco usando la funzione grid.arrange, parte del pacchetto 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)

etichette di spunta dell&rsquo;asse ggplot 1

Un altro metodo utile per modificare le etichette sull’asse x consiste nel passare un oggetto funzione come parametro labels. Il prossimo frammento di codice utilizza la funzione abbreviare per accorciare automaticamente le etichette e quindi disegnare grafici come due colonne.

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)

etichette di spunta dell&rsquo;asse ggplot 2

scale_x_discrete funziona in modo simile su grafici diversi e la tecnica di manipolazione dell’etichetta è applicabile, come mostrato nell’esempio seguente. Vale a dire, diversi grafici a dispersione sono tratti dal set di dati 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)

etichette di spunta dell&rsquo;asse ggplot 3

Usa scale_x_discrete con la funzione personalizzata per modificare le etichette di spunta dell’asse X ggplot in R

Il parametro scale_x_discrete labels può richiedere un oggetto funzione personalizzato per modificare di conseguenza ogni etichetta di spunta. In questo caso, abbiamo implementato la funzione capitalize_all che prima abbrevia ogni etichetta e poi converte il carattere iniziale della stringa nella lettera maiuscola. Nota che le funzioni integrate paste, toupper, substring e abbreviate sono utilizzate per implementare la funzionalità capitalize_all, ma una revisione completa di questi metodi esula dallo scopo di questo articolo. Le pagine di manuale possono essere visualizzate utilizzando la notazione ?function_name nella 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)

etichette di spunta dell&rsquo;asse ggplot 4

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

Articolo correlato - R Plot