Histogramm mit ggplot in R . erstellen
-
Verwenden Sie
geom_histogram
, um ein Histogramm mitggplot
in R . zu erstellen -
Verwenden Sie die Parameter
fill
,colour
undsize
, um die Histogramm-Visuals in R . zu ändern -
Verwenden Sie
facet_wrap
, um mehrere Histogramme zu erstellen, die nach Kategorie in R . gruppiert sind
Dieser Artikel zeigt, wie Sie mit ggplot
in R ein Histogramm erstellen.
Verwenden Sie geom_histogram
, um ein Histogramm mit ggplot
in R . zu erstellen
Mit der Funktion geom_histogram
wird ein einfaches Histogramm erstellt, das nur eine Variable benötigt, um den Graphen zu zeichnen. In diesem Fall verwenden wir den Datensatz diamonds
, nämlich die Spalte Preis
daraus, um die Zuordnung zur x-Achse zu spezifizieren. geom_histogram
wählt automatisch die Bin-Größe und die Skalierungsdatenpunkte aus, es sei denn, sie werden vom Benutzer explizit übergeben.
library(ggplot2)
p1 <- ggplot(diamonds, aes(x = price)) +
geom_histogram()
p1
Das folgende Beispiel erweitert den vorherigen Codeausschnitt, um die Haltepunkte auf jeder Achse mit den Funktionen scale_x_continuous
und scale_y_continuous
anzugeben. Der Parameter breaks
wird verwendet, um die von der Funktion seq
generierten Werte zu übergeben. seq
-Parameter sind intuitiv zu lesen, da sie das Muster bilden - (from, to, by)
. Wir verwenden auch die Funktion grid.arrange
, um zwei Graphen zum visuellen Vergleich nebeneinander anzuzeigen.
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(x = price)) +
geom_histogram()
p2 <- ggplot(diamonds, aes(x = price)) +
geom_histogram() +
scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
scale_x_continuous(breaks = seq(0, 18000, 2000))
grid.arrange(p1, p2, nrow = 2)
Verwenden Sie die Parameter fill
, colour
und size
, um die Histogramm-Visuals in R . zu ändern
Die üblichen Parameter wie fill
, colour
und size
können verwendet werden, um die Darstellung von Graph-Bins zu ändern. Der Parameter fill
gibt die Farbe an, mit der die Bins gefüllt werden; dagegen wird Color
für die Bin-Striche verwendet. size
nimmt einen numerischen Wert an, um die Breite der Bin-Striche anzugeben. Beachten Sie auch, dass der folgende Codeausschnitt den Parameter name
zu beiden Achsen hinzufügt.
library(ggplot2)
library(gridExtra)
p3 <- ggplot(diamonds, aes(x = price)) +
geom_histogram(fill = "pink", colour = "brown") +
scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
scale_x_continuous(breaks = seq(0, 18000, 2000))
p4 <- ggplot(diamonds, aes(x = price)) +
geom_histogram(fill = "pink", colour = "brown", size = .3) +
scale_y_continuous(breaks = seq(1000, 14000, 2000), name = "Number of diamonds" ) +
scale_x_continuous(breaks = seq(0, 18000, 2000), name = "Price" )
grid.arrange(p3, p4, nrow = 2)
Verwenden Sie facet_wrap
, um mehrere Histogramme zu erstellen, die nach Kategorie in R . gruppiert sind
Die Funktion facet_wrap
kann verwendet werden, um mehrere Histogramme basierend auf dem Satz von Variablen zu zeichnen. Der Datensatz diamonds
bietet genügend Dimensionen, um die Variablen aus einer seiner Spalten auszuwählen. Zum Beispiel haben wir die Spalte cut
gewählt, um verschiedene price
-Histogramme für jeden Typ anzuzeigen. Die Funktion theme
kann auch mit geom_histogram
kombiniert werden, um benutzerdefinierte Formatierungen für Diagrammelemente festzulegen.
library(ggplot2)
p5 <- ggplot(diamonds, aes(x = price)) +
geom_histogram(fill = "pink", colour = "brown", size = .3) +
scale_y_continuous( name = "Number of diamonds" ) +
scale_x_continuous( name = "Price" ) +
facet_wrap(~cut) +
theme(
axis.title.x = element_text(
size = rel(1.2), lineheight = .9,
family = "Calibri", face = "bold", colour = "black"
),
axis.title.y = element_text(
size = rel(1.2), lineheight = .9,
family = "Calibri", face = "bold", colour = "black"
),
plot.background = element_rect("yellow"))
p5
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook