ggplot2 - Guida rapida

ggplot2 è un pacchetto R progettato appositamente per la visualizzazione dei dati e per fornire la migliore analisi esplorativa dei dati. Fornisce trame belle e senza problemi che si prendono cura di dettagli minuti come disegnare leggende e rappresentarle. I grafici possono essere creati in modo iterativo e modificati successivamente. Questo pacchetto è progettato per funzionare a più livelli, iniziando con un livello che mostra i dati grezzi raccolti durante l'analisi esplorativa dei dati con R, quindi aggiungendo livelli di annotazioni e riepiloghi statistici.

Anche gli utenti R più esperti hanno bisogno di aiuto per creare una grafica elegante. Questa libreria è uno strumento fenomenale per creare grafica in R ma anche dopo molti anni di utilizzo quasi quotidiano dobbiamo ancora fare riferimento al nostro Cheat Sheet.

Questo pacchetto funziona sotto una grammatica profonda chiamata "Grammatica della grafica" che è composta da un insieme di componenti indipendenti che possono essere creati in molti modi. La "grammatica della grafica" è l'unica ragione che rende ggplot2 molto potente perché lo sviluppatore R non si limita a un insieme di elementi grafici pre-specificati che vengono utilizzati in altri pacchetti. La grammatica include un semplice insieme di regole e principi fondamentali.

Nell'anno 2005, Wilkinson ha creato o piuttosto ha originato il concetto di grammatica della grafica per descrivere le caratteristiche profonde che è incluso tra tutti i grafici statistici. Si concentra sul primario dei livelli che include l'adattamento delle funzionalità incorporate con R.

Relazione tra "Grammatica della grafica" e R

Indica all'utente o allo sviluppatore che un grafico statistico viene utilizzato per mappare i dati su attributi estetici come colore, forma, dimensione degli oggetti geometrici interessati come punti, linee e barre. Il grafico può anche contenere varie trasformazioni statistiche dei dati interessati che vengono disegnati sul sistema di coordinate citato. Include anche una funzione chiamata "Sfaccettatura" che viene generalmente utilizzata per creare lo stesso grafico per diversi sottoinsiemi del set di dati menzionato. R include vari set di dati integrati. La combinazione di questi componenti indipendenti comprende totalmente una grafica particolare.

Ora concentriamoci su diversi tipi di grafici che possono essere creati con riferimento alla grammatica:

Dati

Se l'utente desidera visualizzare il dato insieme di mappature estetiche che descrive come le variabili richieste nei dati vengono mappate insieme per la creazione di attributi estetici mappati.

Strati

È costituito da elementi geometrici e dalla necessaria trasformazione statistica. I livelli includono oggetti geometrici, geomi per dati brevi che rappresentano effettivamente il grafico con l'aiuto di punti, linee, poligoni e molti altri. La migliore dimostrazione è il raggruppamento e il conteggio delle osservazioni per creare l'istogramma specifico per riepilogare la relazione 2D di uno specifico modello lineare.

Bilancia

Le scale vengono utilizzate per mappare i valori nello spazio dati utilizzato per la creazione di valori, indipendentemente dal fatto che si tratti di colore, dimensione e forma. Aiuta a disegnare una legenda o assi necessari per fornire una mappatura inversa che consenta di leggere i valori dei dati originali dal grafico menzionato.

Sistema di coordinate

Descrive come le coordinate dei dati vengono mappate insieme al piano menzionato del grafico. Fornisce inoltre informazioni sugli assi e sulle linee della griglia necessarie per leggere il grafico. Normalmente viene utilizzato come sistema di coordinate cartesiane che include coordinate polari e proiezioni cartografiche.

Sfaccettatura

Include le specifiche su come suddividere i dati in sottoinsiemi richiesti e visualizzare i sottoinsiemi come multipli di dati. Questo è anche chiamato processo di condizionamento o reticolo.

Tema

Controlla i punti più fini di visualizzazione come la dimensione del carattere e le proprietà del colore di sfondo. Per creare una trama attraente, è sempre meglio considerare i riferimenti.

Ora, è altrettanto importante discutere i limiti o le caratteristiche che la grammatica non fornisce:

  • Manca il suggerimento di quale grafica dovrebbe essere utilizzata o un utente è interessato a fare.

  • Non descrive l'interattività in quanto include solo la descrizione della grafica statica. Per la creazione di grafici dinamici è opportuno applicare un'altra soluzione alternativa.

Il semplice grafico creato con ggplot2 è menzionato di seguito -

I pacchetti R sono dotati di varie funzionalità come l'analisi delle informazioni statistiche o la ricerca approfondita dei dati geospaziali o la semplice creazione di report di base.

I pacchetti di R possono essere definiti come funzioni R, dati e codice compilato in un formato ben definito. La cartella o directory in cui sono archiviati i pacchetti è denominata libreria.

Come visibile nella figura sopra, libPaths () è la funzione che mostra la libreria che si trova, e la libreria delle funzioni mostra i pacchetti salvati nella libreria.

R include un numero di funzioni che manipolano i pacchetti. Ci concentreremo su tre funzioni principali che vengono utilizzate principalmente, sono:

  • Installazione del pacchetto
  • Caricamento di un pacchetto
  • Imparare a conoscere il pacchetto

La sintassi con la funzione per l'installazione di un pacchetto in R è:

Install.packages(“<package-name>”)

La semplice dimostrazione dell'installazione di un pacchetto è visibile di seguito. Considera che dobbiamo installare il pacchetto "ggplot2" che è la libreria di visualizzazione dei dati, viene utilizzata la seguente sintassi:

Install.packages(“ggplot2”)

Per caricare il particolare pacchetto, dobbiamo seguire la sintassi sotto menzionata:

Library(<package-name>)

Lo stesso vale per ggplot2 come indicato di seguito -

library(“ggplot2”)

L'output è rappresentato nell'istantanea di seguito:

Per comprendere la necessità del pacchetto richiesto e delle funzionalità di base, R fornisce la funzione di aiuto che fornisce i dettagli completi del pacchetto installato.

La sintassi completa è menzionata di seguito:

help(ggplot2)

In questo capitolo, ci concentreremo sulla creazione di una trama semplice con l'aiuto di ggplot2. Useremo i seguenti passaggi per creare il grafico predefinito in R.

Inclusione della libreria e del set di dati nello spazio di lavoro

Includere la libreria in R. Caricamento del pacchetto necessario. Ora ci concentreremo sul pacchetto ggplot2.

# Load ggplot2 
library(ggplot2)

Implementeremo il set di dati "Iris". Il dataset contiene 3 classi di 50 istanze ciascuna, in cui ogni classe fa riferimento a un tipo di pianta di iris. Una classe è separabile linearmente dalle altre due; questi ultimi NON sono separabili linearmente l'uno dall'altro.

# Read in dataset
data(iris)

Di seguito è riportato l'elenco degli attributi inclusi nel set di dati:

Utilizzo degli attributi per il grafico campione

Il tracciamento del grafico del set di dati dell'iride con ggplot2 in modo più semplice implica la seguente sintassi:

# Plot
IrisPlot <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) 
   + geom_point()
print(IrisPlot)

Il primo parametro prende il set di dati come input, il secondo parametro menziona la legenda e gli attributi che devono essere tracciati nel database. In questo esempio, stiamo usando la legenda Specie. Geom_point () implica un grafico a dispersione che verrà discusso in dettaglio nel capitolo successivo.

L'output generato è menzionato di seguito:

Qui possiamo modificare il titolo, l'etichetta x e l'etichetta y che significa etichette dell'asse x e dell'asse y in formato sistematico come indicato di seguito -

print(IrisPlot + labs(y="Petal length (cm)", x = "Sepal length (cm)") 
   + ggtitle("Petal and sepal length of iris"))

Quando parliamo di assi nei grafici, si tratta di assi xey rappresentati in modo bidimensionale. In questo capitolo, ci concentreremo su due set di dati "Plantgrowth" e "Iris" che è comunemente usato dai data scientist.

Implementazione degli assi nel set di dati Iris

Useremo i seguenti passaggi per lavorare sugli assi xey usando il pacchetto ggplot2 di R.

È sempre importante caricare la libreria per ottenere le funzionalità del pacchetto.

# Load ggplot
library(ggplot2)

# Read in dataset
data(iris)

Creazione dei punti della trama

Come discusso nel capitolo precedente, creeremo una trama con dei punti in essa. In altre parole, è definito come trama dispersa.

# Plot
p <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) + geom_point()
p

Vediamo ora la funzionalità di aes che menziona la struttura di mappatura di "ggplot2". Le mappature estetiche descrivono la struttura delle variabili necessaria per il tracciamento e i dati che dovrebbero essere gestiti in formato layer individuale.

L'output è fornito di seguito:

Evidenzia e segni di spunta

Traccia i marker con le coordinate menzionate degli assi xey come indicato di seguito. Include l'aggiunta di testo, la ripetizione del testo, l'evidenziazione di un'area particolare e l'aggiunta di segmenti come segue:

# add text
p + annotate("text", x = 6, y = 5, label = "text")

# add repeat
p + annotate("text", x = 4:6, y = 5:7, label = "text")

# highlight an area
p + annotate("rect", xmin = 5, xmax = 7, ymin = 4, ymax = 6, alpha = .5)

# segment
p + annotate("segment", x = 5, xend = 7, y = 4, yend = 5, colour = "black")

L'output generato per l'aggiunta di testo è fornito di seguito:

La ripetizione di un testo particolare con le coordinate menzionate genera il seguente output. Il testo è generato con coordinate x da 4 a 6 e coordinate y da 5 a 7 -

Di seguito viene fornita la segmentazione e l'evidenziazione di una particolare area di output:

Set di dati PlantGrowth

Ora concentriamoci sul lavoro con un altro set di dati chiamato "Plantgrowth" e il passaggio necessario è indicato di seguito.

Chiama la biblioteca e controlla gli attributi di "Plantgrowth". Questo set di dati include i risultati di un esperimento per confrontare le rese (misurate dal peso essiccato delle piante) ottenute sotto un controllo e due diverse condizioni di trattamento.

> PlantGrowth
  weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
7 5.17 ctrl
8 4.53 ctrl
9 5.33 ctrl
10 5.14 ctrl
11 4.81 trt1
12 4.17 trt1
13 4.41 trt1
14 3.59 trt1
15 5.87 trt1
16 3.83 trt1
17 6.03 trt1

Aggiunta di attributi con assi

Prova a tracciare un grafico semplice con gli assi xey richiesti del grafico come indicato di seguito -

> bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
+    geom_point()
> bp

L'output generato è dato di seguito:

Infine, possiamo scorrere gli assi xey secondo i nostri requisiti con la funzione di base come indicato di seguito -

> bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
+    geom_point()
> bp

Fondamentalmente, possiamo usare molte proprietà con mappature estetiche per lavorare con gli assi usando ggplot2.

Asce e leggende sono chiamate collettivamente come guide. Ci consentono di leggere le osservazioni dalla trama e di mapparle rispetto ai valori originali. Le chiavi della legenda e le etichette di graduazione sono entrambe determinate dalle interruzioni di scala. Le legende e gli assi vengono prodotti automaticamente in base alle rispettive scale e geomi necessari per la stampa.

Saranno implementati i seguenti passaggi per comprendere il funzionamento delle leggende in ggplot2 -

Inclusione di pacchetto e set di dati nello spazio di lavoro

Creiamo lo stesso grafico per concentrarci sulla legenda del grafico generato con ggplot2 -

> # Load ggplot
> library(ggplot2)
>
> # Read in dataset
> data(iris)
>
> # Plot
> p <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) + geom_point()
> p

Se osservi la trama, le legende vengono create negli angoli più a sinistra come indicato di seguito:

Qui, la legenda include vari tipi di specie del dato set di dati.

Modifica degli attributi per le leggende

Possiamo rimuovere la legenda con l'aiuto della proprietà "legend.position" e otteniamo l'output appropriato -

> # Remove Legend
> p + theme(legend.position="none")

Possiamo anche nascondere il titolo della legenda con la proprietà "element_blank ()" come indicato di seguito -

> # Hide the legend title
> p + theme(legend.title=element_blank())

Possiamo anche usare la posizione della legenda come e quando necessario. Questa proprietà viene utilizzata per generare la rappresentazione accurata del grafico.

> #Change the legend position
> p + theme(legend.position="top")
>
> p + theme(legend.position="bottom")

Top representation

Bottom representation

Modifica dello stile del carattere delle leggende

Possiamo cambiare lo stile del carattere e il tipo di carattere del titolo e altri attributi della legenda come indicato di seguito -

> #Change the legend title and text font styles
> # legend title
> p + theme(legend.title = element_text(colour = "blue", size = 10, + face = "bold"))
> # legend labels
> p + theme(legend.text = element_text(colour = "red", size = 8, + face = "bold"))

L'output generato è dato di seguito:

I prossimi capitoli si concentreranno su vari tipi di grafici con varie proprietà di sfondo come il colore, i temi e l'importanza di ciascuno di essi dal punto di vista della scienza dei dati.

I grafici a dispersione sono simili ai grafici a linee solitamente utilizzati per la stampa. I grafici a dispersione mostrano quanto una variabile è correlata a un'altra. La relazione tra le variabili è chiamata correlazione che viene solitamente utilizzata nei metodi statistici. Useremo lo stesso set di dati chiamato "Iris" che include molte variazioni tra ciascuna variabile. Questo è un famoso set di dati che fornisce misurazioni in centimetri delle variabili lunghezza e larghezza dei sepali con lunghezza e larghezza dei petali per 50 fiori di ciascuna delle 3 specie di iris. Le specie sono chiamate Iris setosa, versicolor e virginica.

Creazione di un grafico a dispersione di base

I seguenti passaggi sono coinvolti per la creazione di grafici a dispersione con il pacchetto "ggplot2" -

Per creare un grafico a dispersione di base viene eseguito il seguente comando:

> # Basic Scatter Plot
> ggplot(iris, aes(Sepal.Length, Petal.Length)) +
+    geom_point()

Aggiunta di attributi

Possiamo cambiare la forma dei punti con una proprietà chiamata shape nella funzione geom_point ().

> # Change the shape of points
> ggplot(iris, aes(Sepal.Length, Petal.Length)) +
+    geom_point(shape=1)

Possiamo aggiungere colore ai punti che viene aggiunto nei grafici a dispersione richiesti.

> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1)

In questo esempio, abbiamo creato i colori secondo le specie menzionate nelle leggende. Le tre specie si distinguono in modo univoco nella trama menzionata.

Ora ci concentreremo sullo stabilire la relazione tra le variabili.

> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm)

geom_smooth la funzione aiuta il modello di sovrapposizione e crea il modello delle variabili richieste.

Il metodo degli attributi "lm" menziona la retta di regressione che deve essere sviluppata.

> # Add a regression line
> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm)

Possiamo anche aggiungere una linea di regressione senza una regione di confidenza ombreggiata con la sintassi sotto menzionata -

># Add a regression line but no shaded confidence region
> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm, se=FALSE)

Le regioni ombreggiate rappresentano cose diverse dalle regioni di fiducia.

Grafici jitter

I grafici jitter includono effetti speciali con i quali è possibile rappresentare grafici sparsi. Il jitter non è altro che un valore casuale assegnato ai punti per separarli come indicato di seguito -

> ggplot(mpg, aes(cyl, hwy)) +
+    geom_point() +
+    geom_jitter(aes(colour = class))

I grafici a barre rappresentano i dati categoriali in modo rettangolare. Le barre possono essere tracciate verticalmente e orizzontalmente. Le altezze o le lunghezze sono proporzionali ai valori rappresentati nei grafici. Gli assi xey dei grafici a barre specificano la categoria inclusa nel set di dati specifico.

L'istogramma è un grafico a barre che rappresenta i dati grezzi con un'immagine chiara della distribuzione del set di dati menzionato.

In questo capitolo ci concentreremo sulla creazione di grafici a barre e istogrammi con l'aiuto di ggplot2.

Comprensione del set di dati MPG

Cerchiamo di capire il set di dati che verrà utilizzato. Il set di dati Mpg contiene un sottoinsieme dei dati sul risparmio di carburante che l'EPA rende disponibile nel link sottostante -

http://fueleconomy.gov

Si compone di modelli che hanno avuto una nuova versione ogni anno tra il 1999 e il 2008. Questo è stato utilizzato come indicatore della popolarità dell'auto.

Il seguente comando viene eseguito per comprendere l'elenco di attributi necessari per il set di dati.

> library(ggplot2)

Il pacchetto allegato è ggplot2.

Il seguente oggetto è mascherato _by_ .GlobalEnv -

mpg

Messaggi di avviso

  • il pacchetto arules è stato compilato con la versione R 3.5.1
  • il pacchetto tuneR è stato creato con la versione R 3.5.3
  • il pacchetto ggplot2 è stato compilato con la versione R 3.5.3

Creazione del grafico del conteggio delle barre

Il grafico Bar Count può essere creato con il grafico sotto indicato -

> # A bar count plot
> p <- ggplot(mpg, aes(x=factor(cyl)))+
+    geom_bar(stat="count")
> p

geom_bar () è la funzione utilizzata per creare grafici a barre. Prende l'attributo del valore statistico chiamato conteggio.

Istogramma

Il grafico del conteggio dell'istogramma può essere creato con il grafico sotto indicato -

> # A historgram count plot
> ggplot(data=mpg, aes(x=hwy)) +
+    geom_histogram( col="red",
+       fill="green",
+       alpha = .2,
+       binwidth = 5)

geom_histogram () include tutti gli attributi necessari per creare un istogramma. Qui, prende l'attributo di hwy con il rispettivo conteggio. Il colore è preso secondo i requisiti.

Grafico a barre in pila

I grafici generali dei grafici a barre e dell'istogramma possono essere creati come di seguito:

> p <- ggplot(mpg, aes(class))
> p + geom_bar()
> p + geom_bar()

Questo grafico include tutte le categorie definite nei grafici a barre con la rispettiva classe. Questo grafico è chiamato grafico in pila.

Un grafico a torta è considerato come un grafico statistico circolare, che è diviso in sezioni per illustrare la proporzione numerica. Nel grafico a torta citato, la lunghezza dell'arco di ciascuna fetta è proporzionale alla quantità che rappresenta. La lunghezza dell'arco rappresenta l'angolo del grafico a torta. I gradi totali del grafico a torta sono 360 gradi. Il semicerchio o il semicerchio è composto da 180 gradi.

Creazione di grafici a torta

Carica il pacchetto nell'area di lavoro menzionata come mostrato di seguito -

> # Load modules
> library(ggplot2)
>
> # Source: Frequency table
> df <- as.data.frame(table(mpg$class))
> colnames(df) <- c("class", "freq")

Il grafico di esempio può essere creato utilizzando il seguente comando:

> pie <- ggplot(df, aes(x = "", y=freq, fill = factor(class))) +
+ geom_bar(width = 1, stat = "identity") +
+ theme(axis.line = element_blank(),
+    plot.title = element_text(hjust=0.5)) +
+    labs(fill="class",
+       x=NULL,
+       y=NULL, 
+       title="Pie Chart of class",
+       caption="Source: mpg")
> pie

Se osservi l'output, il diagramma non viene creato in modo circolare come indicato di seguito -

Creazione di coordinate

Eseguiamo il seguente comando per creare il grafico a torta richiesto come segue:

> pie + coord_polar(theta = "y", start=0)

In questo capitolo, discuteremo dei grafici marginali.

Comprensione dei grafici marginali

I grafici marginali vengono utilizzati per valutare la relazione tra due variabili ed esaminare le loro distribuzioni. Quando parliamo di creazione di grafici marginali, non sono altro che grafici a dispersione che hanno istogrammi, grafici a riquadri o grafici a punti ai margini dei rispettivi assi xey.

I passaggi seguenti verranno utilizzati per creare un grafico marginale con R utilizzando il pacchetto "ggExtra". Questo pacchetto è progettato per migliorare le funzionalità del pacchetto "ggplot2" e include varie funzioni per creare grafici marginali di successo.

Passo 1

Installa il pacchetto "ggExtra" utilizzando il seguente comando per una corretta esecuzione (se il pacchetto non è installato nel tuo sistema).

> install.packages("ggExtra")

Passo 2

Includere le librerie richieste nello spazio di lavoro per creare grafici marginali.

> library(ggplot2)
> library(ggExtra)

Passaggio 3

Leggere il set di dati richiesto "mpg" che abbiamo utilizzato nei capitoli precedenti.

> data(mpg)
> head(mpg)
# A tibble: 6 x 11
manufacturer   model  displ   year   cyl   trans      drv   cty   hwy  fl  class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi         a4     1.8     1999   4     auto(l5)   f     18    29   p   compa~
2 audi         a4     1.8     1999   4     manual(m5) f     21    29   p   compa~
3 audi         a4     2       2008   4     manual(m6) f     20    31   p   compa~
4 audi         a4     2       2008   4     auto(av)   f     21    30   p   compa~
5 audi         a4     2.8     1999   6     auto(l5)   f     16    26   p   compa~
6 audi         a4     2.8     1999   6     manual(m5) f     18    26   p   compa~
>

Passaggio 4

Ora creiamo un semplice grafico utilizzando "ggplot2" che ci aiuterà a comprendere il concetto di grafici marginali.

> #Plot
> g <- ggplot(mpg, aes(cty, hwy)) +
+    geom_count() +
+    geom_smooth(method="lm", se=F)
> g

Relazione tra variabili

Ora creiamo i grafici marginali usando la funzione ggMarginal che aiuta a generare la relazione tra due attributi "hwy" e "cty".

> ggMarginal(g, type = "histogram", fill="transparent")
> ggMarginal(g, type = "boxplot", fill="transparent")

L'output per i grafici marginali dell'istogramma è menzionato di seguito:

L'output per i grafici box marginali è menzionato di seguito:

I grafici a bolle non sono altro che grafici a bolle che sono fondamentalmente un grafico a dispersione con una terza variabile numerica utilizzata per la dimensione del cerchio. In questo capitolo, ci concentreremo sulla creazione di grafici di conteggio barre e grafici di conteggio istogramma che sono considerati come repliche di grafici a bolle.

I seguenti passaggi vengono utilizzati per creare grafici a bolle e grafici di conteggio con il pacchetto menzionato -

Comprensione del set di dati

Caricare il rispettivo pacchetto e il set di dati richiesto per creare i grafici a bolle e i grafici di conteggio.

> # Load ggplot
> library(ggplot2)
>
> # Read in dataset
> data(mpg)
> head(mpg)
# A tibble: 6 x 11
manufacturer  model  displ  year  cyl  trans      drv   cty  hwy  fl  class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4     1.8    1999  4    auto(l5)   f     18   29   p   compa~
2 audi        a4     1.8    1999  4    manual(m5) f     21   29   p   compa~
3 audi        a4     2      2008  4    manual(m6) f     20   31   p   compa~
4 audi        a4     2      2008  4    auto(av)   f     21   30   p   compa~
5 audi        a4     2.8    1999  6    auto(l5)   f     16   26   p   compa~
6 audi        a4     2.8    1999  6    manual(m5) f     18   26   p   compa~

Il grafico del conteggio delle barre può essere creato utilizzando il seguente comando:

> # A bar count plot
> p <- ggplot(mpg, aes(x=factor(cyl)))+
+ geom_bar(stat="count")
> p

Analisi con istogrammi

Il grafico del conteggio dell'istogramma può essere creato utilizzando il seguente comando:

> # A historgram count plot
> ggplot(data=mpg, aes(x=hwy)) +
+    geom_histogram( col="red",
+       fill="green",
+       alpha = .2,
+       binwidth = 5)

Grafici a bolle

Ora creiamo il grafico a bolle più semplice con gli attributi richiesti per aumentare la dimensione dei punti menzionati nel grafico a dispersione.

ggplot(mpg, aes(x=cty, y=hwy, size = pop)) +geom_point(alpha=0.7)

La trama descrive la natura dei produttori che è inclusa nel formato della legenda. I valori rappresentati includono varie dimensioni dell'attributo "hwy".

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.

In questo capitolo, ci concentreremo sull'uso del tema personalizzato che viene utilizzato per modificare l'aspetto e il design dell'area di lavoro. Useremo il pacchetto "ggthemes" per comprendere il concetto di gestione dei temi nello spazio di lavoro di R.

Implementiamo i seguenti passaggi per utilizzare il tema richiesto all'interno del set di dati menzionato.

GGTHEMES

Installa il pacchetto "ggthemes" con il pacchetto richiesto nell'area di lavoro R.

> install.packages("ggthemes")
> Library(ggthemes)

Implementa un nuovo tema per generare leggende di produttori con anno di produzione e spostamento.

> library(ggthemes)
> ggplot(mpg, aes(year, displ, color=factor(manufacturer)))+
+ geom_point()+ggtitle("This plot looks a lot different from the default")+
+ theme_economist()+scale_colour_economist()

Si può osservare che la dimensione predefinita del testo del segno di spunta, delle legende e di altri elementi è leggermente ridotta con la precedente gestione del tema. È incredibilmente facile modificare la dimensione di tutti gli elementi di testo contemporaneamente. Questo può essere fatto creando un tema personalizzato che possiamo osservare nel passaggio seguente che le dimensioni di tutti gli elementi sono relative (rel ()) a base_size.

> theme_set(theme_gray(base_size = 30))
> ggplot(mpg, aes(x=year, y=class))+geom_point(color="red")

I grafici a più pannelli significano la creazione di grafici di più grafici insieme in un unico grafico. Useremo la funzione par () per mettere più grafici in un unico grafico passando i parametri grafici mfrow e mfcol.

Qui useremo il set di dati "AirQuality" per implementare grafici multi-pannello. Comprendiamo prima il set di dati per dare un'occhiata alla creazione di grafici a più pannelli. Questo set di dati include Contiene le risposte di un dispositivo multisensore di gas distribuito sul campo in una città italiana. Le medie delle risposte orarie vengono registrate insieme ai riferimenti delle concentrazioni di gas da un analizzatore certificato.

Informazioni sulla funzione par ()

Comprendere la funzione par () per creare una dimensione dei grafici multi pannello richiesti.

> par(mfrow=c(1,2))
> # set the plotting area into a 1*2 array

Questo crea un grafico vuoto con dimensione di 1 * 2.

Ora crea il grafico a barre e il grafico a torta del set di dati menzionato usando il seguente comando. Questo stesso fenomeno può essere ottenuto con il parametro grafico mfcol.

Creazione di grafici a più pannelli

L'unica differenza tra i due è che, mfrow riempie la riga della regione della sottotrama per quanto riguarda la riga, mentre mfcol la riempie per la colonna.

> Temperature <- airquality$Temp
> Ozone <- airquality$Ozone
> par(mfrow=c(2,2))
> hist(Temperature)
> boxplot(Temperature, horizontal=TRUE)
> hist(Ozone)
> boxplot(Ozone, horizontal=TRUE)

I grafici a scatole e i grafici a barre vengono creati in una singola finestra fondamentalmente creando un grafico a più pannelli.

Lo stesso grafico con un cambio di dimensioni nella funzione par apparirebbe come segue:

par(mfcol = c(2, 2))

In questo capitolo ci concentreremo sulla creazione di più grafici che possono essere ulteriormente utilizzati per creare grafici tridimensionali. L'elenco delle trame che verranno trattate include:

  • Grafico densità
  • Box Plot
  • Dot Plot
  • Trama di violino

Useremo il set di dati "mpg" come usato nei capitoli precedenti. Questo set di dati fornisce dati sul risparmio di carburante del 1999 e del 2008 per 38 modelli di auto popolari. Il set di dati viene fornito con il pacchetto ggplot2. È importante seguire il passaggio indicato di seguito per creare diversi tipi di grafici.

> # Load Modules
> library(ggplot2)
>
> # Dataset
> head(mpg)
# A tibble: 6 x 11
manufacturer  model   displ   year   cyl   trans       drv   cty   hwy  fl   class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4      1.8     1999   4     auto(l5)    f     18    29   p    compa~
2 audi        a4      1.8     1999   4     manual(m5)  f     21    29   p    compa~
3 audi        a4      2       2008   4     manual(m6)  f     20    31   p    compa~
4 audi        a4      2       2008   4     auto(av)    f     21    30   p    compa~
5 audi        a4      2.8     1999   6     auto(l5)    f     16    26   p    compa~
6 audi        a4      2.8     1999   6     manual(m5)  f     18    26   p    compa~

Grafico densità

Un diagramma di densità è una rappresentazione grafica della distribuzione di qualsiasi variabile numerica nel set di dati menzionato. Utilizza una stima della densità del kernel per mostrare la funzione di densità di probabilità della variabile.

Il pacchetto "ggplot2" include una funzione chiamata geom_density () per creare un grafico di densità.

Eseguiremo il seguente comando per creare un grafico di densità:

> p −- ggplot(mpg, aes(cty)) +
+  geom_density(aes(fill=factor(cyl)), alpha=0.8)
> p

Possiamo osservare varie densità dalla trama creata di seguito:

Possiamo creare la trama rinominando gli assi xey che mantiene una migliore chiarezza con l'inclusione di titolo e legende con diverse combinazioni di colori.

> p + labs(title="Density plot",
+    subtitle="City Mileage Grouped by Number of cylinders",
+    caption="Source: mpg",
+    x="City Mileage",
+    fill="# Cylinders")

Box Plot

Il box plot, chiamato anche box and whisker plot, rappresenta il riepilogo a cinque numeri dei dati. I cinque riepiloghi numerici includono valori come minimo, primo quartile, mediana, terzo quartile e massimo. La linea verticale che attraversa la parte centrale del box plot è considerata “mediana”.

Possiamo creare box plot usando il seguente comando:

> p <- ggplot(mpg, aes(class, cty)) +
+  geom_boxplot(varwidth=T, fill="blue")
> p + labs(title="A Box plot Example",
+    subtitle="Mileage by Class",
+    caption="MPG Dataset",
+    x="Class",
+    y="Mileage")
>p

Qui stiamo creando box plot rispetto agli attributi di class e cty.

Dot Plot

I grafici a punti sono simili ai grafici a dispersione con la sola differenza di dimensione. In questa sezione, aggiungeremo un diagramma a punti al diagramma a riquadri esistente per avere un'immagine e una chiarezza migliori.

Il box plot può essere creato utilizzando il seguente comando:

> p <- ggplot(mpg, aes(manufacturer, cty)) +
+    geom_boxplot() +
+    theme(axis.text.x = element_text(angle=65, vjust=0.6))
> p

Il dot plot viene creato come indicato di seguito:

> p + geom_dotplot(binaxis='y',
+    stackdir='center',
+    dotsize = .5
+    )

Trama di violino

Anche la trama del violino viene creata in modo simile con il solo cambio di struttura dei violini invece della scatola. L'output è chiaramente menzionato di seguito:

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()

Esistono modi per modificare l'intero aspetto della trama con una funzione come indicato di seguito. Ma se vuoi semplicemente cambiare il colore di sfondo del pannello, puoi usare quanto segue:

Sfondo del pannello di implementazione

Possiamo cambiare il colore di sfondo usando il seguente comando che aiuta a cambiare il pannello (panel.background) -

> ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+ theme(panel.background = element_rect(fill = 'grey75'))

Il cambiamento di colore è chiaramente rappresentato nell'immagine sottostante -

Implementazione di Panel.grid.major

Possiamo cambiare le linee della griglia usando la proprietà "panel.grid.major" come indicato nel comando di seguito -

> ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+    theme(panel.background = element_rect(fill = 'grey75'),
+    panel.grid.major = element_line(colour = "orange", size=2),
+    panel.grid.minor = element_line(colour = "blue"))

Possiamo anche cambiare lo sfondo della trama, in particolare escludendo il pannello utilizzando la proprietà "plot.background" come indicato di seguito -

ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+   theme(plot.background = element_rect(fill = 'pink'))

Una serie temporale è un grafico che rappresenta la serie di punti dati in un ordine temporale specifico. Una serie temporale è una sequenza presa con una sequenza in punti di tempo successivi equidistanti. Le serie temporali possono essere considerate dati a tempo discreto. L'insieme di dati che useremo in questo capitolo è l'insieme di dati "economici" che include tutti i dettagli delle serie storiche economiche statunitensi.

Il dataframe include i seguenti attributi menzionati di seguito:

Data Mese di raccolta dei dati
Psavert Tasso di risparmio personale
Pce Spesa per consumi personali
Disoccupato Numero di disoccupati in migliaia
Unempmed Durata mediana della disoccupazione
Pop Popolazione totale in migliaia

Carica i pacchetti richiesti e imposta il tema predefinito per creare una serie temporale.

> library(ggplot2)
> theme_set(theme_minimal())
> # Demo dataset
> head(economics)
# A tibble: 6 x 6
date           pce            pop          psavert       uempmed       unemploy
<date>         <dbl>         <dbl>         <dbl>         <dbl>         <dbl>
1 1967-07-01    507.          198712        12.6          4.5           2944
2 1967-08-01    510.          198911        12.6          4.7           2945
3 1967-09-01    516.          199113        11.9          4.6           2958
4 1967-10-01    512.          199311        12.9          4.9           3143
5 1967-11-01    517.          199498        12.8          4.7           3066
6 1967-12-01    525.          199657        11.8          4.8           3018

Creare grafici a linee di base che creino una struttura di serie temporali.

> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)

Possiamo tracciare il sottoinsieme di dati usando il seguente comando:

> # Plot a subset of the data
> ss <- subset(economics, date > as.Date("2006-1-1"))
> ggplot(data = ss, aes(x = date, y = pop)) +
+ geom_line(color = "#FC4E07", size = 2)

Creazione di serie storiche

Qui tracceremo le variabili psavert e uempmed per date. Qui dobbiamo rimodellare i dati usando il pacchetto tidyr. Ciò può essere ottenuto comprimendo i valori psavert e uempmed nella stessa colonna (nuova colonna). Funzione R: gather () [tidyr]. Il passaggio successivo prevede la creazione di una variabile di raggruppamento con livelli = psavert e uempmed.

> library(tidyr)
> library(dplyr)
Attaching package: ‘dplyr’
The following object is masked from ‘package:ggplot2’: vars
The following objects are masked from ‘package:stats’: filter, lag
The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union
> df <- economics %>%
+    select(date, psavert, uempmed) %>%
+    gather(key = "variable", value = "value", -date)
> head(df, 3)
# A tibble: 3 x 3
date          variable     value
<date> <chr>   <dbl>
1 1967-07-01   psavert       12.6
2 1967-08-01   psavert       12.6
3 1967-09-01   psavert       11.9

Crea un grafico a più linee utilizzando il seguente comando per dare un'occhiata alla relazione tra "psavert" e "disabled" -

> ggplot(df, aes(x = date, y = value)) +
+    geom_line(aes(color = variable), size = 1) +
+    scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+    theme_minimal()