Un grafico a barre è un ottimo modo per visualizzare le variabili categoriali nell'asse x. Questo tipo di grafico denota due aspetti nell'asse y.
- Il primo conta il numero di occorrenze tra i gruppi.
- Il secondo mostra una statistica riassuntiva (min, max, media e così via) di una variabile sull'asse y.
Utilizzerai il set di dati mtcars con le seguenti variabili:
- cil: numero del cilindro nell'auto. Variabile numerica
- am: tipo di trasmissione. 0 per automatico e 1 per manuale. Variabile numerica
- mpg: Miglia per gallone. Variabile numerica
In questo tutorial imparerai
- Come creare un grafico a barre
- Cambia il colore delle barre
- Cambia l'intensità
- Colore per gruppi
- Aggiungi un gruppo nei bar
- Grafico a barre in percentuale
- Barre fianco a fianco
- Istogramma
Come creare un grafico a barre
Per creare grafici in R, puoi usare la libreria ggplot che crea grafici pronti per la pubblicazione. La sintassi di base di questa libreria è:
ggplot(data, mapping = aes()) +geometric objectarguments:data: dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
In questo tutorial, sei interessato all'oggetto geometrico geom_bar () che crea il grafico a barre.
Grafico a barre: conteggio
Il tuo primo grafico mostra la frequenza del cilindro con geom_bar (). Il codice seguente è la sintassi più basilare.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Spiegazione del codice
- Si passa il set di dati mtcars a ggplot.
- All'interno dell'argomento aes (), aggiungi l'asse x come variabile fattore (cil)
- Il segno + significa che vuoi che R continui a leggere il codice. Rende il codice più leggibile interrompendolo.
- Usa geom_bar () per l'oggetto geometrico.
Produzione:
Nota : assicurati di convertire le variabili in un fattore altrimenti R tratta le variabili come numeriche. Vedi l'esempio sotto.
Personalizza il grafico
È possibile passare quattro argomenti per personalizzare il grafico:
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar
Cambia il colore delle barre
Puoi cambiare il colore delle barre. Nota che i colori delle barre sono tutti simili.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Spiegazione del codice
- I colori delle barre sono controllati dalla mappatura aes () all'interno dell'oggetto geometrico (cioè non in ggplot ()). Puoi cambiare il colore con gli argomenti di riempimento. Qui scegli il colore del corallo.
Produzione:
Puoi usare questo codice:
grDevices::colors()
per vedere tutti i colori disponibili in R. Ci sono circa 650 colori.
Cambia l'intensità
Puoi aumentare o diminuire l'intensità del colore delle barre
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Spiegazione del codice
- Per aumentare / diminuire l'intensità della barra, è possibile modificare il valore dell'alfa. Un alfa grande aumenta l'intensità e un alfa basso riduce l'intensità. alpha varia da 0 a 1. Se è 1, il colore è lo stesso della tavolozza. Se 0, il colore è bianco. Scegli alpha = 0.1.
Produzione:
Colore per gruppi
È possibile modificare i colori delle barre, ovvero un colore diverso per ogni gruppo. Ad esempio, la variabile cyl ha tre livelli, quindi puoi tracciare il grafico a barre con tre colori.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Spiegazione del codice
- L'argomento fill all'interno di aes () permette di cambiare il colore della barra. Puoi cambiare il colore impostando riempimento = variabile dell'asse x. Nel tuo esempio, la variabile dell'asse x è cil; riempimento = fattore (cil)
Produzione:
Aggiungi un gruppo nei bar
È possibile dividere ulteriormente l'asse y in base a un altro livello di fattore. Ad esempio, puoi contare il numero di cambi automatici e manuali in base al tipo di cilindro.
Procedi come segue:
- Passaggio 1: crea il data frame con il set di dati mtcars
- Passaggio 2: etichettare la variabile am con auto per la trasmissione automatica e man per la trasmissione manuale. Converti am e cil come fattore in modo da non dover utilizzare factor () nella funzione ggplot ().
- Passaggio 3: tracciare il grafico a barre per contare il numero di trasmissioni per cilindro
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Hai il set di dati pronto, puoi tracciare il grafico;
# Passaggio 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Spiegazione del codice
- Ggpplot () contiene i dati del set di dati e aes ().
- In aes () includi la variabile asse x e quale variabile è richiesta per riempire la barra (cioè am)
- geom_bar (): crea il grafico a barre
Produzione:
La mappatura riempirà la barra con due colori, uno per ogni livello. È facile cambiare il gruppo scegliendo altre variabili fattore nel set di dati.
Grafico a barre in percentuale
Puoi visualizzare la barra in percentuale invece del conteggio grezzo.
# Grafico a barre in percentuale
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Spiegazione del codice
- Usa position = "fill" nell'argomento geom_bar () per creare un'immagine con percentuale sull'asse y.
Produzione:
Barre fianco a fianco
È facile tracciare il grafico a barre con la variabile di gruppo affiancata.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Spiegazione del codice
- position = position_dodge (): dice esplicitamente come disporre le battute
Produzione:
Istogramma
Nella seconda parte del tutorial sul grafico a barre, puoi rappresentare il gruppo di variabili con valori sull'asse y.
Il tuo obiettivo è creare un grafico con il miglio medio per gallone per ogni tipo di cilindro. Per disegnare un grafico informativo, seguirai questi passaggi:
- Passaggio 1: creare una nuova variabile con il miglio medio per gallone per cilindro
- Passaggio 2: crea un istogramma di base
- Passaggio 3: modifica l'orientamento
- Passaggio 4: cambia il colore
- Passaggio 5: modifica le dimensioni
- Passaggio 6: aggiungi etichette al grafico
Passaggio 1) Crea una nuova variabile
Crei un data frame denominato data_histogram che restituisce semplicemente le miglia medie per gallone in base al numero di cilindri dell'auto. Chiami questa nuova variabile mean_mpg e arrotondi la media con due decimali.
# Passo 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Passaggio 2) Crea un istogramma di base
Puoi tracciare l'istogramma. Non è pronto a comunicare per essere consegnato al cliente ma ci dà un'intuizione sul trend.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Spiegazione del codice
- La aes () ha ora due variabili. La variabile cil si riferisce all'asse xe mean_mpg è l'asse y.
- È necessario passare l'argomento stat = "identity" per fare riferimento alla variabile nell'asse y come valore numerico. geom_bar utilizza stat = "bin" come valore predefinito.
Produzione:
Passaggio 3) Modifica l'orientamento
Si modifica l'orientamento del grafico da verticale a orizzontale.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Spiegazione del codice
- Puoi controllare l'orientamento del grafico con coord_flip ().
Produzione:
Passaggio 4) Cambia il colore
È possibile differenziare i colori delle barre in base al livello di fattore della variabile dell'asse x.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Spiegazione del codice
- È possibile tracciare il grafico per gruppi con la mappatura fill = cyl. R si occupa automaticamente dei colori in base ai livelli di cilindrata variabile
Produzione:
Passaggio 5) Modifica le dimensioni
Per rendere il grafico più bello, riduci la larghezza della barra.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Spiegazione del codice
- L'argomento larghezza all'interno di geom_bar () controlla la dimensione della barra. Un valore maggiore aumenta la larghezza.
- Nota, memorizzi il grafico nel grafico delle variabili. Lo fai perché il passaggio successivo non cambierà il codice del grafico variabile. Migliora la leggibilità del codice.
Produzione:
Passaggio 6) Aggiungi etichette al grafico
L'ultimo passaggio consiste nell'aggiungere il valore della variabile mean_mpg nell'etichetta.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Spiegazione del codice
- La funzione geom_text () è utile per controllare l'estetica del testo.
- label =: aggiunge un'etichetta all'interno delle barre
- mean_mpg: utilizza la variabile mean_mpg per l'etichetta
- hjust controlla la posizione dell'etichetta. I valori chiusi a 1 mostrano l'etichetta nella parte superiore della barra, mentre i valori più alti portano l'etichetta in fondo. Se l'orientamento del grafico è verticale, cambia hjust in vjust.
- color = "white": cambia il colore del testo. Qui usi il colore bianco.
- size = 3: imposta la dimensione del testo.
Produzione:
Sommario
Un grafico a barre è utile quando l'asse x è una variabile categoriale. L'asse y può essere un conteggio o una statistica di riepilogo. La tabella seguente riassume come controllare il grafico a barre con ggplot2:
Obbiettivo |
codice |
---|---|
Contare |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Contare con un colore di riempimento diverso |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Conta con gruppi, impilati |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Conta con i gruppi, fianco a fianco |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Conta con gruppi, impilati in% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Valori |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |