Streudiagramm in R mit ggplot2 (mit Beispiel)
Diagramme sind der dritte Teil des Datenanalyseprozesses. Im ersten Teil geht es darum DatenextracProduktion, befasst sich der zweite Teil mit Bereinigen und Bearbeiten der Daten. Endlich muss der Datenwissenschaftler es vielleicht tun seine Ergebnisse grafisch kommunizieren.
Der Job 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 Zielen 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 der Erkundung des Datensatzes beginnen. Manchmal ist es aufgrund einer neuen Entdeckung notwendig, die ursprรผngliche Hypothese zu verfeinern und zu รคndern.
- Wenn das erlรคuternd Um eine Analyse zu erreichen, muss der Datenwissenschaftler die Fรคhigkeit des Lesers berรผcksichtigen die zugrunde liegenden Konzepte und Modelle verstehen.
- Seine Ergebnisse sollten in einem Format prรคsentiert werden, das fรผr alle Beteiligten verstรคndlich ist. Eine der besten Methoden, um mit uns kommunizieren, Die Ergebnisse werden durch a Graph.
- Diagramme sind ein unglaubliches Werkzeug zur Vereinfachung komplexer Analysen.
ggplot2-Paket
Dieser Teil des Tutorials konzentriert sich auf die Erstellung von Grafiken/Diagrammen mit R.
In diesem Tutorial verwenden Sie das ggplot2-Paket. Dieses Paket basiert auf den soliden Grundlagen des Buches โGrammar of Graphicsโ von Wilkinson (2005). ggplot2 ist sehr flexibel und bietet zahlreiche Mรถglichkeiten zur Diagrammspezifikation auf einem hohen Abstraktionsniveau.tracMit ggplot2 lassen sich keine dreidimensionalen Grafiken darstellen und keine interaktiven Grafiken erstellen.
In ggplot2 besteht ein Diagramm aus den folgenden Argumenten:
- frustrierten
- รคsthetische Karteping
- geometrisches Objekt
- statistische Transformationen
- unsere Tonleiter
- Koordinatensystem
- Positionsanpassungen
- Facettierung
Im Tutorial erfahren Sie, wie Sie diese Argumente steuern.
Die grundlegende Syntax von ggplot2 ist:
ggplot(data, mapping=aes()) + geometric object arguments: data: Dataset used to plot the graph mapping: Control the x and y-axis geometric 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
Sehen wir uns an, wie ggplot mit dem mtcars-Datensatz funktioniert. Sie beginnen mit der Darstellung eines Streudiagramms der Variablen mpg und drat.
Grundlegendes Streudiagramm
library(ggplot2)
ggplot(mtcars, aes(x = drat, y = mpg)) +
geom_point()
Code Erlรคuterung
- Sie รผbergeben zunรคchst den Datensatz mtcars an ggplot.
- Innerhalb des aes()-Arguments fรผgen Sie die x-Achse und die y-Achse hinzu.
- Das +-Zeichen bedeutet, dass R den Code weiterlesen soll. Es unterbricht den Code und macht ihn dadurch lesbarer.
- Verwenden Sie geom_point() fรผr das geometrische Objekt.
Ausgang:
Streudiagramm mit Gruppen
Manchmal kann es interessant sein, die Werte anhand einer Datengruppe (z. B. Daten auf Faktorebene) zu unterscheiden.
ggplot(mtcars, aes(x = mpg, y = drat)) +
geom_point(aes(color = factor(gear)))
Code Erlรคuterung
- Die aes() innerhalb von geom_point() steuert die Farbe der Gruppe. Die Gruppe sollte eine Faktorvariable sein. Somit rechnet man den variablen Gang in einen Faktor um.
- Insgesamt haben Sie den Code aes(color =factor(gear)), der die Farbe der Punkte รคndert.
Ausgang:
Achse wechseln
Die Neuskalierung der Daten ist ein groรer Teil der Arbeit eines Datenwissenschaftlers. In seltenen Fรคllen liegen Daten in einer schรถnen Glockenform vor. Eine Lรถsung, um Ihre Daten weniger anfรคllig fรผr Ausreiรer zu machen, besteht darin, sie neu zu skalieren.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +
geom_point(aes(color = factor(gear)))
Code Erlรคuterung
- Sie transformieren die x- und y-Variablen in log() direkt innerhalb der aes()-Map.ping.
Beachten Sie, dass jede andere Transformation angewendet werden kann, z. B. Standardisierung oder Normalisierung.
Ausgang:
Streudiagramm mit angepassten Werten
Sie kรถnnen dem Diagramm eine weitere Informationsebene hinzufรผgen. Sie kรถnnen den angepassten Wert einer linearen Regression grafisch 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 Erlรคuterung
- graph: Sie speichern Ihren Graphen in der Variable graph. Dies ist hilfreich fรผr die weitere Verwendung oder um zu komplexe Codezeilen zu vermeiden.
- Das Argument stat_smooth() steuert die Glรคttungsmethode
- method = โlmโ: Lineare Regression
- Spalte = โ#C42126โ: Code fรผr die rote Farbe der Linie
- se = FALSE: Standardfehler nicht anzeigen
- Grรถรe = 1: Die Grรถรe der Linie ist 1
Ausgang:
Beachten Sie, dass andere Glรคttungsmethoden verfรผgbar sind
- glm
- gam
- Lรถss: Standardwert
- Felge
Fรผgen Sie dem Diagramm Informationen hinzu
Bisher haben wir den Diagrammen keine Informationen hinzugefรผgt. Diagramme mรผssen informativ sein. Der Leser sollte die Geschichte hinter der Datenanalyse allein durch Betrachten des Diagramms erkennen, ohne zusรคtzliche Dokumentation zu konsultieren. Daher benรถtigen Diagramme gute Beschriftungen. Sie kรถnnen Beschriftungen mit der Funktion labs() hinzufรผgen.
Die grundlegende Syntax fรผr lab() ist:
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-axis Example:lab(title = "Hello Guru99", subtitle = "My first plot")
Titel hinzufรผgen
Eine obligatorische Information, die hinzugefรผgt werden muss, ist natรผrlich ein Titel.
my_graph +
labs(
title = "Plot Mile per hours and drat, in log"
)
Code Erlรคuterung
- my_graph: Sie verwenden den von Ihnen gespeicherten Graphen. Dadurch wird vermieden, dass jedes Mal, wenn Sie dem Diagramm neue Informationen hinzufรผgen, alle Codes neu geschrieben werden.
- Sie schlieรen den Titel in lab() ein.
- Code fรผr die rote Farbe der Linie
- se = FALSE: Standardfehler nicht anzeigen
- Grรถรe = 1: Die Grรถรe der Linie ist 1
Ausgang:
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
Ejemplo:
A <-2010
paste("The first year is", A)
Ausgang:
## [1] "The first year is 2010"
B <-2018
paste("The first year is", A, "and the last year is", B)
Ausgang:
## [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 Erlรคuterung
- Sie erstellen den Durchschnitt von mpg mit dem in der Variablen โmean_mpgโ gespeicherten Mittelwert (mtcars$mpg).
- Sie verwenden paste() mit mean_mpg, um einen dynamischen Titel zu erstellen, der den Mittelwert von mpg zurรผckgibt
Ausgang:
Fรผgen Sie einen Untertitel hinzu
Zwei zusรคtzliche Details kรถnnen Ihr Diagramm anschaulicher machen. Sie sprechen vom Untertitel und der Bildunterschrift. Der Untertitel steht direkt unter dem Titel. Die Bildunterschrift kann Aufschluss darรผber geben, wer die Berechnung durchgefรผhrt hat und aus welcher Quelle 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 Erlรคuterung
- Im lab() haben Sie Folgendes hinzugefรผgt:
- Titel = โBeziehung zwischen Meile pro Stunde und Dratโ: Titel hinzufรผgen
- subtitle = โBeziehungsaufschlรผsselung nach Ausrรผstungsklasseโ: 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 umbrechen. Es ist nicht zwingend erforderlich und hilft nur, den Code leichter zu lesen
Ausgang:
X-Achse und Y-Achse umbenennen
Variablen selbst im Datensatz sind mรถglicherweise nicht immer explizit oder verwenden vereinbarungsgemรคร das _, wenn es mehrere Wรถrter gibt (z. B. GDP_CAP). Sie mรถchten nicht, dass ein solcher Name in Ihrem Diagramm erscheint. Es ist wichtig, den Namen zu รคndern oder weitere Details hinzuzufรผgen, z. B. die Einheiten.
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 Erlรคuterung
- Im lab() haben Sie Folgendes hinzugefรผgt:
- x = โDrat-Definitionโ: รndern Sie den Namen der x-Achse
- y = โMeile pro Stundeโ: รndere den Namen der y-Achse
Ausgang:
Kontrollieren Sie die Waage
Sie kรถnnen die Skalierung 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 einer Schrittweite von 3 erstellen mรถchten, erhalten Sie vier Zahlen: 0 4 8 12
seq(0, 12,4)
Ausgang:
## [1] 0 4 8 12
Sie kรถnnen die Skalierung 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 Erlรคuterung
- Die Funktion scale_y_continuous() steuert die y-Achse
- Die Funktion scale_x_continuous() steuert die x-Achse.
- Der Parameter breaks 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): Erstelle sechs Zahlen von 2.4 bis 3.4 mit einer Schrittweite von 3
- seq(1, 1.6, by = 0.1): Erstelle sieben Zahlen von 1 bis 1.6 mit einer Schrittweite von 1
Ausgang:
Thema
Schlieรlich ermรถglicht uns R, unsere Handlung mit verschiedenen Themen anzupassen. Die Bibliothek ggplot2 umfasst 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"
)
Ausgang:
Grundstรผcke speichern
Nach all diesen Schritten ist es an der Zeit, Ihr Diagramm zu speichern und zu teilen. Sie fรผgen ggsave('NAME OF THE FILE) direkt nach dem Zeichnen 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, 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"
)
Ausgang:
ggsave("my_fantastic_plot.png")
Ausgang:
## 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 sehen.
# Run this code to create the
function
open_folder <- function(dir) {
if (.Platform['OS.type'] == "windows") {
shell.exec(dir)
} else {
system(paste(Sys.getenv("R_BROWSER"), dir))
}
}
# Call the
function to open the folder open_folder(directory)
Zusammenfassung
Sie kรถnnen die Argumente zum Erstellen eines Streudiagramms in der folgenden Tabelle zusammenfassen:
| Ziel | 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") |
| Fรผgen Sie angepasste Werte hinzu |
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"))
|
| x umbenennen |
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() |
| Gespeichert |
ggsave("my_fantastic_plot.png")
|












