ggplot2 - Grafici divergenti
Nei capitoli precedenti, abbiamo esaminato vari tipi di grafici che possono essere creati utilizzando il pacchetto "ggplot2". Ora ci concentreremo sulla variazione degli stessi grafici a barre divergenti, grafici lecca-lecca e molti altri. Per cominciare, inizieremo con la creazione di grafici a barre divergenti e i passaggi da seguire sono menzionati di seguito:
Comprensione del set di dati
Carica il pacchetto richiesto e crea una nuova colonna chiamata "nome auto" all'interno del set di dati mpg.
#Load ggplot
> library(ggplot2)
> # create new column for car names
> mtcars$`car name` <- rownames(mtcars)
> # compute normalized mpg
> mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)
> # above / below avg flag
> mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")
> # sort
> mtcars <- mtcars[order(mtcars$mpg_z), ]
Il calcolo di cui sopra comporta la creazione di una nuova colonna per i nomi delle auto, calcolando il set di dati normalizzato con l'aiuto della funzione round. Possiamo anche usare il flag above e below avg per ottenere i valori della funzionalità "type". Successivamente, ordiniamo i valori per creare il set di dati richiesto.
L'output ricevuto è il seguente:
Converti i valori in fattore per mantenere l'ordine ordinato in un particolare grafico come indicato di seguito -
> # convert to factor to retain sorted order in plot.
> mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`)
L'output ottenuto è menzionato di seguito:
Grafico a barre divergente
Ora crea un grafico a barre divergente con gli attributi menzionati che viene preso come coordinate richieste.
> # Diverging Barcharts
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
+ scale_fill_manual(name="Mileage",
+ labels = c("Above Average", "Below Average"),
+ values = c("above"="#00ba38", "below"="#f8766d")) +
+ labs(subtitle="Normalised mileage from 'mtcars'",
+ title= "Diverging Bars") +
+ coord_flip()
Note - Un grafico a barre divergente indica alcuni membri di dimensione che puntano verso l'alto o verso il basso rispetto ai valori menzionati.
L'output del grafico a barre divergenti è menzionato di seguito dove usiamo la funzione geom_bar per creare un grafico a barre -
Grafico divergente di lecca-lecca
Crea un grafico lecca-lecca divergente con gli stessi attributi e coordinate con solo il cambio di funzione da utilizzare, ad esempio geom_segment () che aiuta nella creazione dei grafici lecca-lecca.
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', fill="black", size=6) +
+ geom_segment(aes(y = 0,
+ x = `car name`,
+ yend = mpg_z,
+ xend = `car name`),
+ color = "black") +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Lollipop Chart",
+ subtitle="Normalized mileage from 'mtcars': Lollipop") +
+ ylim(-2.5, 2.5) +
+ coord_flip()
Diagramma a punti divergenti
Creare un diagramma a punti divergenti in modo simile in cui i punti rappresentano i punti in grafici sparsi in dimensioni maggiori.
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', aes(col=mpg_type), size=6) +
+ scale_color_manual(name="Mileage",
+ labels = c("Above Average", "Below Average"),
+ values = c("above"="#00ba38", "below"="#f8766d")) +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Dot Plot",
+ subtitle="Normalized mileage from 'mtcars': Dotplot") +
+ ylim(-2.5, 2.5) +
+ coord_flip()
Qui, le legende rappresentano i valori "Sopra la media" e "Sotto la media" con colori distinti di verde e rosso. Il diagramma a punti trasmette informazioni statiche. I principi sono gli stessi del grafico a barre Diverging, tranne per il fatto che vengono utilizzati solo i punti.