Mit der R-Visualisierungsbibliothek ggplot2 können Sie ein angepasstes lineares Regressionsmodell mit der folgenden Grundsyntax zeichnen:
ggplot(data,aes(x, y)) +
geom_point() +
geom_smooth(method='lm')
Das folgende Beispiel zeigt, wie diese …
In diesem Tutorial wird erklärt, wie Sie mit ggplot2 eine Heatmap in R erstellen.
Zum Erstellen einer Heatmap verwenden wir das integrierte R-Dataset mtcars.
#Erste sechs Reihen von mtcars anzeigen
head(mtcars)
# mpg cyl disp hp drat wt qsec vs am gear carb
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Derzeit ist mtcars in einem breiten Format, aber wir müssen es in ein langes Format schmelzen, um die Heatmap zu erstellen.
#Laden Sie das Paket reshape2, um die Funktion melt() zu verwenden
library(reshape2)
#"melt" Mtcars in Langformat
melt_mtcars <- melt(mtcars)
#Spalte für Autonamen hinzufügen
melt_mtcars$car <- rep(row.names(mtcars), 11)
#Die ersten sechs Zeilen von Melt_mtcars anzeigen
head(melt_mtcars)
# variable value car
#1 mpg 21.0 Mazda RX4
#2 mpg 21.0 Mazda RX4 Wag
#3 mpg 22.8 Datsun 710
#4 mpg 21.4 Hornet 4 Drive
#5 mpg 18.7 Hornet Sportabout
#6 mpg 18.1 Valiant
Wir können den folgenden Code verwenden, um die Heatmap in ggplot2 zu erstellen:
library(ggplot2)
ggplot(melt_mtcars, aes(variable, car)) +
geom_tile(aes(fill = value), colour = "white") +
scale_fill_gradient(low = "white", high = "red")
Da die Werte für disp viel größer sind als die Werte für alle anderen Variablen im Dataframe, ist es leider schwierig, die Farbabweichung für die anderen Variablen zu erkennen.
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Werte für jede Variable von 0 auf 1 neu zu skalieren, indem Sie die Funktion rescale() im Paket scales() und die Funktion ddply() im Paket plyr() verwenden:
#Bibliotheken laden
library(plyr)
library(scales)
#Rescale-Werte für alle Variablen im "melted" Dataframe
melt_mtcars <- ddply(melt_mtcars, .(variable), transform, rescale = rescale(value))
#Heatmap mit neu skalierten Werten erstellen
ggplot(melt_mtcars, aes(variable, car)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "red")
Sie können die Farben der Heatmap auch ändern, indem Sie die im Argument scale_fill_gradient() verwendeten Farben ändern:
#Heatmap mit blauer Farbskala erstellen
ggplot(melt_mtcars, aes(variable, car)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue")
Beachten Sie, dass die Heatmap derzeit nach Fahrzeugnamen sortiert ist. Wir könnten stattdessen die Heatmap nach den Werten einer der Variablen wie mpg mit dem folgenden Code bestellen:
#Definieren Sie den Autonamen als neue Spalte und sortieren Sie ihn nach absteigendem mpgmtcars$car <- row.names(mtcars)
mtcars$car <- with(mtcars, reorder(car, mpg))
#"melt" Mtcars in Langformat
melt_mtcars <- melt(mtcars)
#Rescale-Werte für alle Variablen im melted Dataframe
melt_mtcars <- ddply(melt_mtcars, .(variable), transform, rescale = rescale(value))
#Heatmap mit neu skalierten Werten erstellen
ggplot(melt_mtcars, aes(variable, car)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue")
Um die Heatmap nach aufsteigendem mpg zu ordnen, müssen wir einfach -mpg im Argument reorder() verwenden:
#Definieren Sie den Autonamen als neue Spalte und sortieren Sie ihn nach absteigendem mpg
mtcars$car <- row.names(mtcars)
mtcars$car <- with(mtcars, reorder(car, -mpg))
#Mtcars in Langformat "schmelzen"
melt_mtcars <- melt(mtcars)
#Rescale-Werte für alle Variablen im melted Dataframe
melt_mtcars <- ddply(melt_mtcars, .(variable), transform, rescale = rescale(value))
#Heatmap mit neu skalierten Werten erstellen
ggplot(melt_mtcars, aes(variable, car)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue")
Zuletzt können wir die Beschriftungen der x- und y-Achse zusammen mit der Legende entfernen, wenn uns das Aussehen mit den Argumenten labs() und theme() nicht gefällt:
#Heatmap ohne Achsenbeschriftungen oder Legende erstellen
ggplot(melt_mtcars, aes(variable, car)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue") +
labs(x = "", y = "") +
theme(legend.position = "none")
Mit der R-Visualisierungsbibliothek ggplot2 können Sie ein angepasstes lineares Regressionsmodell mit der folgenden Grundsyntax zeichnen:
ggplot(data,aes(x, y)) +
geom_point() +
geom_smooth(method='lm')
Das folgende Beispiel zeigt, wie diese …
Die Datenvisualisierungsbibliothek ggplot2 macht es einfach, schöne Diagramme in R von Grund auf neu zu erstellen.
gplot2 bietet jedoch keinen Titel für Diagramme, es sei denn, Sie geben einen an …