Streudiagramm in R mit ggplot2 (mit Beispiel)

Inhaltsverzeichnis:

Anonim

Grafiken sind der dritte Teil des Datenanalyseprozesses. Der erste Teil befasst sich mit der Datenextraktion , der zweite Teil befasst sich mit der Bereinigung und Bearbeitung der Daten . Schließlich muss der Datenwissenschaftler möglicherweise seine Ergebnisse grafisch kommunizieren .

Die Arbeit des Datenwissenschaftlers kann im folgenden Bild überprüft werden

  • Die erste Aufgabe eines Datenwissenschaftlers besteht darin, eine Forschungsfrage zu definieren. Diese Forschungsfrage hängt von den Zielen und Vorgaben des Projekts ab.
  • Danach ist eine der wichtigsten Aufgaben das Feature-Engineering. Der Datenwissenschaftler muss die Daten sammeln, bearbeiten und bereinigen
  • Wenn dieser Schritt abgeschlossen ist, kann er mit dem Durchsuchen des Datensatzes beginnen. Manchmal ist es aufgrund einer neuen Entdeckung notwendig, die ursprüngliche Hypothese zu verfeinern und zu ändern.

  • Wenn die erklärende Analyse erreicht ist, muss der Datenwissenschaftler die Fähigkeit des Lesers berücksichtigen , die zugrunde liegenden Konzepte und Modelle zu verstehen .
  • Seine Ergebnisse sollten in einem Format präsentiert werden, das alle Beteiligten verstehen können. Eine der besten Methoden zur Kommunikation der Ergebnisse ist die grafische Darstellung .
  • Grafiken sind ein unglaubliches Werkzeug, um komplexe Analysen zu vereinfachen.

In diesem Tutorial lernen Sie:

  • ggplot2-Paket
  • Streudiagramm
  • Achse ändern
  • Streudiagramm mit angepassten Werten
  • Fügen Sie dem Diagramm Informationen hinzu
  • Benennen Sie die x-Achse und die y-Achse um
  • Kontrollieren Sie die Waage
  • Thema
  • Plots speichern

ggplot2-Paket

Dieser Teil des Tutorials befasst sich mit dem Erstellen von Grafiken / Diagrammen mit R.

In diesem Tutorial verwenden Sie das Paket ggplot2. Dieses Paket basiert auf der konsistenten Grundlage des Buches Grammatik der Grafiken von Wilkinson, 2005. ggplot2 ist sehr flexibel und enthält viele Themen und Plotspezifikationen auf einem hohen Abstraktionsniveau. Mit ggplot2 können Sie keine dreidimensionalen Grafiken zeichnen und keine interaktiven Grafiken erstellen.

In ggplot2 besteht ein Diagramm aus den folgenden Argumenten:

  • Daten
  • ästhetisches Mapping
  • geometrisches Objekt
  • statistische Transformationen
  • Waage
  • Koordinatensystem
  • Positionsanpassungen
  • Facettierung

Im Tutorial erfahren Sie, wie Sie diese Argumente steuern.

Die grundlegende Syntax von ggplot2 lautet:

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 object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`

Streudiagramm

Mal sehen, wie ggplot mit dem mtcars-Dataset funktioniert. Sie zeichnen zunächst ein Streudiagramm der Variablen mpg und drat.

Grundlegendes Streudiagramm

library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()

Code Erklärung

  • Sie übergeben zuerst den Datensatz mtcars an ggplot.
  • Innerhalb des Arguments aes () fügen Sie die x-Achse und die y-Achse hinzu.
  • Das + -Zeichen bedeutet, dass R den Code weiter lesen soll. Es macht den Code besser lesbar, indem es gebrochen wird.
  • Verwenden Sie geom_point () für das geometrische Objekt.

Ausgabe:

Streudiagramm mit Gruppen

Manchmal kann es interessant sein, die Werte durch eine Gruppe von Daten (dh Daten auf Faktorebene) zu unterscheiden.

ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))

Code Erklärung

  • Das aes () in geom_point () steuert die Farbe der Gruppe. Die Gruppe sollte eine Faktorvariable sein. Sie konvertieren also den variablen Gang in einen Faktor.
  • Insgesamt haben Sie den Code aes (Farbe = Faktor (Zahnrad)), der die Farbe der Punkte ändert.

Ausgabe:

Achse ändern

Das erneute Skalieren der Daten ist ein wichtiger Bestandteil der Arbeit von Datenwissenschaftlern. In seltenen Fällen liegen die Daten in einer schönen Glockenform vor. Eine Lösung, um Ihre Daten für Ausreißer weniger empfindlich zu machen, besteht darin, sie neu zu skalieren.

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))

Code Erklärung

  • Sie transformieren die x- und y-Variablen in log () direkt innerhalb der aes () - Zuordnung.

Beachten Sie, dass jede andere Transformation angewendet werden kann, z. B. Standardisierung oder Normalisierung.

Ausgabe:

Streudiagramm mit angepassten Werten

Sie können dem Diagramm eine weitere Informationsebene hinzufügen. Sie können den angepassten Wert einer linearen Regression darstellen.

my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph

Code Erklärung

  • Grafik: Sie speichern Ihre Grafik in der variablen Grafik. Dies ist hilfreich für die weitere Verwendung oder zur Vermeidung zu komplexer Codezeilen
  • Das Argument stat_smooth () steuert die Glättungsmethode
  • method = "lm": Lineare Regression
  • col = "# C42126": Code für die rote Farbe der Linie
  • se = FALSE: Zeigt den Standardfehler nicht an
  • Größe = 1: Die Größe der Zeile beträgt 1

Ausgabe:

Beachten Sie, dass andere Glättungsmethoden verfügbar sind

  • glm
  • gam
  • Löss: Standardwert
  • Rand

Fügen Sie dem Diagramm Informationen hinzu

Bisher haben wir keine Informationen in die Grafiken aufgenommen. Grafiken müssen informativ sein. Der Leser sollte die Geschichte hinter der Datenanalyse sehen, indem er sich die Grafik ansieht, ohne auf zusätzliche Dokumentation zu verweisen. Daher benötigen Diagramme gute Beschriftungen. Sie können Beschriftungen mit der Funktion labs () hinzufügen.

Die grundlegende Syntax für lab () lautet:

lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")

Füge einen Titel hinzu

Eine obligatorische Information, die hinzugefügt werden muss, ist offensichtlich ein Titel.

my_graph +labs(title = "Plot Mile per hours and drat, in log")

Code Erklärung

  • my_graph: Sie verwenden das von Ihnen gespeicherte Diagramm. Es wird vermieden, dass alle Codes jedes Mal neu geschrieben werden, wenn Sie dem Diagramm neue Informationen hinzufügen.
  • Sie wickeln den Titel in das Labor ein ().
  • Code für die rote Farbe der Linie
  • se = FALSE: Zeigt den Standardfehler nicht an
  • Größe = 1: Die Größe der Zeile beträgt 1

Ausgabe:

Fügen Sie einen Titel mit einem dynamischen Namen hinzu

Ein dynamischer Titel ist hilfreich, um dem Titel genauere Informationen hinzuzufügen.

Mit der Funktion paste () können Sie statischen und dynamischen Text drucken. Die grundlegende Syntax von paste () lautet:

paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma

Beispiel:

A <-2010paste("The first year is", A)

Ausgabe:

## [1] "The first year is 2010"
B <-2018

paste("The first year is", A, "and the last year is", B)

Ausgabe:

## [1] "The first year is 2010 and the last year is 2018" 

Sie können unserem Diagramm einen dynamischen Namen hinzufügen, nämlich den Durchschnitt von mpg.

mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))

Code Erklärung

  • Sie erstellen den Durchschnitt von mpg mit dem Mittelwert (mtcars $ mpg), der in der Variablen mean_mpg gespeichert ist
  • Sie verwenden paste () mit mean_mpg, um einen dynamischen Titel zu erstellen, der den Mittelwert von mpg zurückgibt

Ausgabe:

Fügen Sie einen Untertitel hinzu

Zwei zusätzliche Details können Ihr Diagramm deutlicher machen. Sie sprechen über den Untertitel und die Beschriftung. Der Untertitel steht direkt unter dem Titel. Die Beschriftung kann darüber informieren, wer die Berechnung durchgeführt hat und woher die Daten stammen.

my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")

Code Erklärung

  • Im Labor () haben Sie hinzugefügt:
    • title = "Beziehung zwischen Meile pro Stunde und drat": Titel hinzufügen
    • subtitle = "Aufschlüsselung der Beziehung nach Zahnradklasse": Untertitel hinzufügen
    • caption = "Eigene Berechnung des Autors: Bildunterschrift hinzufügen
    • Sie trennen jede neue Information durch ein Komma.
  • Beachten Sie, dass Sie die Codezeilen unterbrechen. Es ist nicht obligatorisch und hilft nur, den Code leichter zu lesen

Ausgabe:

Benennen Sie die x-Achse und die y-Achse um

Variablen selbst im Datensatz sind möglicherweise nicht immer explizit oder verwenden gemäß Konvention das _, wenn mehrere Wörter vorhanden sind (z. B. GDP_CAP). Sie möchten nicht, dass ein solcher Name in Ihrem Diagramm angezeigt wird. Es ist wichtig, den Namen zu ändern oder weitere Details wie die Einheiten hinzuzufügen.

my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Code Erklärung

  • Im Labor () haben Sie hinzugefügt:
    • x = "Drat-Definition": Ändern Sie den Namen der x-Achse
    • y = "Meile pro Stunde": Ändern Sie den Namen der y-Achse

Ausgabe:

Kontrollieren Sie die Waage

Sie können den Maßstab der Achse steuern.

Die Funktion seq () ist praktisch, wenn Sie eine Zahlenfolge erstellen müssen. Die grundlegende Syntax lautet:

seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`

Wenn Sie beispielsweise einen Bereich von 0 bis 12 mit einem Schritt von 3 erstellen möchten, haben Sie vier Zahlen, 0 4 8 12

seq(0, 12,4)

Ausgabe:

## [1] 0 4 8 12 

Sie können den Maßstab der x- und y-Achse wie folgt steuern

my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Code Erklärung

  • Die Funktion scale_y_continuous () steuert die y-Achse
  • Die Funktion scale_x_continuous () steuert die x-Achse .
  • Der Parameter break steuert die Aufteilung der Achse. Sie können die Zahlenfolge manuell hinzufügen oder die Funktion seq () verwenden:
    • seq (1, 3.6, by = 0.2): Erstellen Sie sechs Zahlen von 2.4 bis 3.4 mit einem Schritt von 3
    • seq (1, 1.6, by = 0.1): Erstellen Sie sieben Zahlen von 1 bis 1.6 mit einem Schritt von 1

Ausgabe:

Thema

Schließlich können wir mit R die Handlung mit verschiedenen Themen anpassen. Die Bibliothek ggplot2 enthält acht Themen:

  • theme_bw ()
  • theme_light ()
  • theme_classis ()
  • theme_linedraw ()
  • theme_dark ()
  • theme_minimal ()
  • theme_gray ()
  • theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Ausgabe:

Plots speichern

Nach all diesen Schritten ist es Zeit, Ihr Diagramm zu speichern und freizugeben. Sie fügen ggsave ('NAME OF THE FILE) direkt nach dem Plotten des Diagramms hinzu und es wird auf der Festplatte gespeichert.

Das Diagramm wird im Arbeitsverzeichnis gespeichert. Um das Arbeitsverzeichnis zu überprüfen, können Sie diesen Code ausführen:

directory <-getwd()directory 

Lassen Sie uns Ihr fantastisches Diagramm zeichnen, es speichern und den Standort überprüfen

my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Ausgabe:

ggsave("my_fantastic_plot.png.webp")

Ausgabe:

## Saving 5 x 4 in image

Hinweis : Nur zu pädagogischen Zwecken haben wir eine Funktion namens open_folder () erstellt, um den Verzeichnisordner für Sie zu öffnen. Sie müssen nur den folgenden Code ausführen und sehen, wo das Bild gespeichert ist. Sie sollten eine Datei mit dem Namen my_fantastic_plot.png.webp sehen.

# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)

Zusammenfassung

Sie können die Argumente zum Erstellen eines Streudiagramms in der folgenden Tabelle zusammenfassen:

Zielsetzung

Code

Grundlegendes Streudiagramm

ggplot(df, aes(x = x1, y = y)) + geom_point()

Streudiagramm mit Farbgruppe

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm")

Passen Sie angepasste Werte an

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1))

Titel hinzufügen

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99"))

Untertitel hinzufügen

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99"))

Benennen Sie x um

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1")

Benennen Sie y um

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1")

Kontrollieren Sie die Waage

ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1)

Erstellen Sie Protokolle

ggplot(df, aes(x =log(x1), y = log(y))) + geom_point()

Thema

ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic()

speichern

ggsave("my_fantastic_plot.png.webp")