Einfacheres ggplot mit dem ggeasy R-Paket

Das Paket ggplot2 data visualization R ist äußerst leistungsfähig und flexibel. Es ist jedoch nicht immer einfach, sich daran zu erinnern, wie jede Aufgabe zu erledigen ist - insbesondere, wenn Sie kein häufiger Benutzer sind. Wie ändern Sie die Größe eines Diagrammtitels? Wie entfernst du Legendentitel? Meine übliche Lösung besteht darin, RStudio-Codefragmente für Dinge zu speichern, an die ich mich nur schwer erinnern kann. Aber es gibt auch ein Paket, das helfen kann: ggeasy.

Wie der Name schon sagt, ist das Ziel der ggeasy, na ja, machen ggplot2 einfach - oder zumindest EASI er . Es hat das, was manche Leute als intuitivere Funktionen für typische Aufgaben empfinden, hauptsächlich in Bezug auf die Text- und Achsenformatierung. (Dieses Paket hat keinen Einfluss darauf, wie Linien, Punkte und Balken aussehen und sich verhalten.) Alle ggeasy-Funktionen beginnen mit, easy_so dass es mit RStudio Autocomplete einfach ist, sie zu finden. Wie das funktioniert, sehen Sie im obigen Video.

Wenn Sie meinem Beispiel unten folgen möchten, befindet sich ggeasy auf CRAN, sodass Sie es mit installieren können install.packages("ggeasy"). Ich werde auch die Pakete ggplot2 (natürlich), dplyr, rio und lubridate verwenden. Später werde ich das Patchwork-Paket für die supereinfache Platzierung mehrerer Diagramme hinzufügen. das ist auch auf CRAN.

In diesem Beispiel werde ich Daten darüber verwenden, was die meisten Menschen heutzutage denken: Coronavirus. Sie können eine CSV-Datei mit Daten nach US-Bundesstaat aus dem Coronavirus Tracking Project mit herunterladen

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

destfile = "covid19.csv")

(Sie können den Namen destfile Zieldatei alles , was Sie möchten.) Habe ich rio::import()die Daten zu importieren, aber Sie können auch verwenden readr::read_csv(), read.csv(), data.table::fread()oder jede andere Funktion , um die CSV - Datei zu importieren.

Bei rio wurden die Daten als Ganzzahlen eingegeben, daher verwende ich die ymd()Funktion von lubridate , um diese Spalte in Datumsobjekte umzuwandeln :

Daten $ Datum <- lubridate :: ymd (Daten $ Datum)

Um ein Diagramm zu erstellen, das nicht allzu schwer zu verstehen ist, filtere ich diese Daten nur für einige Zustände, sodass es keine 50 separaten Zeitreihenlinien gibt. Ich habe Louisiana ausgewählt, um den Anstieg der Fälle dort zu sehen - der Gouverneur von Louisiana sagte, der Staat habe in Fällen das weltweit schnellste Wachstum. (Es gibt Spekulationen, dass Karneval im Februar einen Cluster in New Orleans verursacht haben könnte.) Ich werde auch Massachusetts hinzufügen, einen Staat mit etwa 50 Prozent mehr Menschen als Louisiana, da ich dort ansässig bin.

Nach dem Filtern der Daten erstelle ich ein grundlegendes Liniendiagramm der Daten:

Zustände2 <- Filter (Daten, Zustand% in% c ("LA", "MA"))

ggplot (Zustände2, aes (x = Datum, y = positiv, Farbe = Zustand)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Tägliche Covid-19-Fälle von Lousiana & Massachusetts")

Sharon Machlis,

Das ist ein ziemlich steiler Anstieg. Manches davon kann bei der Prüfung zu einer Erhöhung fällig - vielleicht nur , dass wir wissen , über mehr Fälle , weil Tests aufgestockt. Ich werde mir das gleich ansehen.

Wie wäre es jedoch mit ein paar Änderungen an diesem Diagramm?

Beginnen wir damit, den Diagrammtitel zu vergrößern. Um ggeasy zu verwenden, tippe ich easy_ im oberen linken Quellbereich von RStudio ein und scrolle, bis ich das finde, was ich will. 

Sharon Machlis,

easy_plot_title_size()sieht aus wie die Funktion, die ich brauche. Mit diesem Code kann ich den Diagrammtitel in einen 16-Punkt-Typ ändern:

ggplot (Zustände2, aes (x = Datum, y = positiv, Farbe = Zustand)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Tägliche Covid-19-Fälle von Lousiana & Massachusetts") +

easy_plot_title_size (16)

Ich kann x-Achsen-Text mit easy_rotate_x_labels(90)für eine 90-Grad-Drehung drehen und den Legendentitel (es ist ziemlich offensichtlich, dass dies Zustände sind) mit entfernen easy_remove_legend_title(). Der vollständige Diagrammcode ist unten aufgeführt, einschließlich des Speicherns des Diagramms in einer Variablen namens positives.

positiv <- ggplot (Zustände2, aes (x = Datum, y = positiv, Farbe = Zustand)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Tägliche Covid-19-Fälle von Lousiana & Massachusetts") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_legend_title ()

Sharon Machlis,

Als nächstes möchte ich mir die negativen Coronavirus-Testergebnisse ansehen, um festzustellen, ob sie ähnlich schnell wie die positiven steigen. Ich werde den gleichen Code verwenden, aber nur die y-Spalte auf Negative umstellen.

Negative <- ggplot (Zustände2, aes (x = Datum, y = Negativ , Farbe = Zustand)) +

geom_line () +

geom_point () +

theme_minimal () +

ggtitle ("Lousiana & Massachusetts Negatives") +

easy_plot_title_size (16) +

easy_rotate_x_labels (90) +

easy_remove_x_axis ("title") +

easy_remove_y_axis ("title") +

easy_remove_legend_title ()

Sharon Machlis,

In Louisiana scheint es einen größeren Anstieg der positiven als der negativen Ergebnisse zu geben. Obwohl wir nicht wissen, ob das daran liegt, dass sich die Testkriterien geändert haben oder etwas anderes.

Es wäre hilfreich, diese beiden Diagramme nebeneinander zu sehen. Hier kommt das Patchwork-Paket ins Spiel. 

Mit nur diesen beiden Codezeilen lädt die erste das Patchwork-Paket: 

Bibliothek ("Patchwork")

Positive + Negative

Ich verstehe das:

Sharon Machlis,

Mit Patchwork ist es unglaublich einfach, mehrere Grafiken zu platzieren. Weitere Informationen zum Anpassen von Layouts finden Sie auf der Patchwork-Website.

Ich kann jetzt zurückgehen und mit ggeasy eine der Legenden entfernen, sodass es keine zwei gibt, und dann das Patchwork erneut ausführen:

Negative <- Negative +

easy_remove_legend ()

Positive + Negative

Ggeasy ist natürlich sehr nützlich für eine schnelle und einfache Datenexploration!

Weitere R-Tipps finden Sie auf der YouTube-Wiedergabeliste „Do More With R“ auf der Seite „Do More With R“.