Ggplot più semplice con il pacchetto ggeasy R.

Il pacchetto R per la visualizzazione dei dati ggplot2 è estremamente potente e flessibile. Tuttavia, non è sempre facile ricordare come eseguire ogni attività, soprattutto se non sei un utente frequente. Come si modificano le dimensioni del titolo di un grafico? Come rimuovi i titoli delle legende? La mia solita soluzione è salvare frammenti di codice RStudio per cose che ho difficoltà a ricordare. Ma c'è anche un pacchetto che può aiutare: ggeasy.

Come dice il nome, l'obiettivo di ggeasy è quello di, beh, fare ggplot2 facile - o almeno easi er . Ha quelle che alcune persone potrebbero trovare funzioni più intuitive per attività tipiche, principalmente intorno alla formattazione del testo e degli assi. (Questo pacchetto non influisce sull'aspetto e sul comportamento di linee, punti e barre ). Tutte le funzioni di ggeasy iniziano con, easy_quindi è, sì, facile trovarle utilizzando il completamento automatico di RStudio. Puoi vedere come funziona nel video qui sopra.

Se desideri seguire il mio esempio qui sotto, ggeasy è su CRAN, quindi puoi installarlo con install.packages("ggeasy"). Userò anche i pacchetti ggplot2 (naturalmente), dplyr, rio e lubridate. Successivamente, aggiungerò il pacchetto patchwork per un posizionamento semplicissimo di più grafici; questo è anche su CRAN.

Per questo esempio, userò i dati su ciò che è nella mente della maggior parte delle persone in questi giorni: il coronavirus. Puoi scaricare un file CSV con i dati dello stato degli Stati Uniti dal Coronavirus Tracking Project con

download.file ("// covidtracking.com/api/states/daily.csv",

destfile = "covid19.csv")

(È possibile denominare il destfile file di destinazione qualsiasi cosa vuoi.) Ho usato rio::import()per importare i dati, ma è anche possibile utilizzare readr::read_csv(), read.csv(), data.table::fread(), o qualsiasi altra funzione per importare il file CSV.

Con rio, le date sono arrivate come numeri interi, quindi userò la ymd()funzione di lubridate per trasformare quella colonna in oggetti Date:

data $ date <- lubridate :: ymd (data $ date)

Per creare un grafico che non sia troppo difficile da capire, filtrerò questi dati solo per un paio di stati in modo che non ci siano 50 linee di serie temporali separate. Ho scelto la Louisiana per vedere l'aumento dei casi lì - il governatore della Louisiana ha detto che lo stato ha una crescita tra i casi più rapida al mondo. (Si ipotizza che il Mardi Gras di febbraio potrebbe aver causato un ammasso a New Orleans.) Aggiungerò anche il Massachusetts, uno stato con circa il 50 per cento di persone in più rispetto alla Louisiana, dato che vivo lì.

Dopo aver filtrato i dati, creerò un grafico a linee di base dei dati:

stati2 <- filtro (dati, stato% in% c ("LA", "MA"))

ggplot (states2, aes (x = date, y = positive, color = state)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases")

Sharon Machlis,

È un aumento piuttosto elevato. Alcuni di che può essere causa di un aumento in fase di test - forse abbiamo appena sappiamo su più casi a causa di test dilagato. Lo guarderò tra un minuto.

Prima, però, che ne dici di qualche modifica a questo grafico?

Cominciamo ingrandendo il titolo del grafico. Per utilizzare ggeasy, inizierei a digitare easy_ nel riquadro della sorgente in alto a sinistra di RStudio e scorrere fino a trovare quello che voglio. 

Sharon Machlis,

easy_plot_title_size()sembra la funzione di cui ho bisogno. Posso cambiare il titolo del grafico in un tipo a 16 punti con questo codice:

ggplot (states2, aes (x = date, y = positive, color = state)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases") +

easy_plot_title_size (16)

Posso ruotare il testo dell'asse x con easy_rotate_x_labels(90)per una rotazione di 90 gradi e rimuovere il titolo della legenda (è abbastanza ovvio che questi sono stati) con easy_remove_legend_title(). Di seguito è riportato il codice completo del grafico, inclusa la memorizzazione del grafico in una variabile chiamata positives.

positivi <- ggplot (states2, aes (x = date, y = positive, color = state)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Lousiana & Massachusetts Daily Covid-19 Cases") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

Successivamente, vorrei esaminare i risultati negativi del test del coronavirus, per vedere se stanno aumentando a tassi simili a quelli positivi. Userò lo stesso codice ma cambierò semplicemente la colonna y in negativo.

negativi <- ggplot (states2, aes (x = date, y = negative , color = state)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Lousiana & Massachusetts Negatives") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("titolo") +

easy_remove_y_axis ("titolo") +

easy_remove_legend_title ()

Sharon Machlis,

Sembra esserci un aumento maggiore degli aspetti positivi rispetto a quelli negativi in ​​Louisiana. Anche se non sappiamo se è perché i criteri di test sono cambiati o qualcos'altro.

Sarebbe utile vedere questi due grafici fianco a fianco. È qui che entra in gioco il pacchetto patchwork. 

Con solo queste due righe di codice, la prima carica il pacchetto patchwork: 

libreria ("patchwork")

positivi + negativi

Ho capito:

Sharon Machlis,

È incredibilmente facile posizionare più grafici con patchwork. Per ulteriori informazioni su come personalizzare i layout, vai al sito Web di patchwork.

Ora posso tornare indietro e usare ggeasy per rimuovere una delle leggende in modo che non ce ne siano due, quindi rieseguire patchwork:

negativi <- negativi +

easy_remove_legend ()

positivi + negativi

Chiaramente, ggeasy è abbastanza utile per una rapida e facile esplorazione dei dati!

Per ulteriori suggerimenti R, vai alla pagina "Fai di più con R" o controlla la playlist di YouTube "Fai di più con R".