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 …
Ein Bump-Diagramm ist eine Art Diagramm, das Rangfolgen verschiedener Gruppen im Zeitverlauf anstelle von absoluten Werten anzeigt, um die Reihenfolge der Gruppen anstelle des Ausmaßes der Änderung hervorzuheben.
In diesem Tutorial wird erklärt, wie Sie mit ggplot2 auf einfache Weise ein Bump-Diagramm in R erstellen.
Um ein Bump-Diagramm in R zu erstellen, müssen wir zuerst zwei Pakete laden: dplyr und ggplot2:
library(ggplot2) # zum Erstellen eines Bump-Diagramms
library(dplyr) # zum Bearbeiten von Daten
Als Nächstes erstellen wir einige Daten, mit denen Sie arbeiten können:
#Setzen Sie den Startwert, um dieses Beispiel reproduzierbar zu machen
set.seed (10)
data <- data.frame(team = rep(LETTERS[1: 5], each = 10),
random_num = runif(50),
day = rep(1:10, 5))
data %
group_by(day) %>%
arrange(day, desc(random_num), team) %>%
mutate(rank = row_number()) %>%
ungroup()
head(data)
team random_num day rank
1 C 0,865 1 1
2 B 0,652 1 2
3 D 0,536 1 3
4 A 0,507 1 4
5 E 0,275 1 5
6 C 0,615 2 1
Dieses Dataframe zeigt einfach den „Rang“ von fünf verschiedenen Teams über einen Zeitraum von 10 Tagen.
Wir können ggplot2 verwenden, um ein Bump-Diagramm zu erstellen, um den Rang jedes Teams während eines jeden Tages über diesen Zeitraum zu visualisieren:
ggplot(data, aes(x = day, y = rank, group = team)) +
geom_line(aes(color = team, alpha = 1), size = 2) +
geom_point(aes(color = team, alpha = 1), size = 4) +
scale_y_reverse(breaks = 1:nrow(data))
Dieses Bump-Diagramm zeigt die Daten in dem von uns gewünschten Format, ist aber ziemlich hässlich. Mit einigen ästhetischen Änderungen können wir dieses Diagramm viel besser aussehen lassen.
Um das Diagramm besser aussehen zu lassen, können wir das folgende von Dominik Koch erstellte Thema verwenden:
my_theme <- function() {
# Farben
color.background = "white"
color.text = "#22211d"
# Diagramm konstruieren
theme_bw(base_size=15) +
# Hintergrundfarben definieren
theme(panel.background = element_rect(fill=color.background,
color=color.background)) +
theme(plot.background = element_rect(fill=color.background,
color=color.background)) +
theme(panel.border = element_rect(color=color.background)) +
theme(strip.background = element_rect(fill=color.background,
color=color.background)) +
# Gridlinien formatieren
theme(panel.grid.major.y = element_blank()) +
theme(panel.grid.minor.y = element_blank()) +
theme(axis.ticks = element_blank()) +
# Legende formatieren
theme(legend.position = "none") +
# Titel und Achsenbeschriftungen formatieren
theme(plot.title = element_text(color=color.text, size=20, face = "bold")) +
theme(axis.title.x = element_text(size=14, color="black", face = "bold")) +
theme(axis.title.y = element_text(size=14, color="black", face = "bold",
vjust=1.25)) +
theme(axis.text.x = element_text(size=10, vjust=0.5, hjust=0.5,
color = color.text)) +
theme(axis.text.y = element_text(size=10, color = color.text)) +
theme(strip.text = element_text(face = "bold")) +
# Abstände plotten
theme(plot.margin = unit(c(0.35, 0.2, 0.3, 0.35), "cm"))
}
Wir werden das Bump-Diagramm erneut erstellen, aber dieses Mal werden wir die Legende entfernen, einige Diagrammbeschriftungen hinzufügen und das im obigen Code definierte Thema verwenden:
ggplot(data, aes(x = as.factor(day), y = rank, group = team)) +
geom_line(aes(color = team, alpha = 1), size = 2) +
geom_point(aes(color = team, alpha = 1), size = 4) +
geom_point(color = "#FFFFFF", size = 1) +
scale_y_reverse(breaks = 1:nrow(data)) +
scale_x_discrete(breaks = 1:10) +
theme(legend.position = 'none') +
geom_text(data = data %>% filter(day == "1"),
aes(label = team, x = 0.5), hjust = .5,
fontface = "bold", color = "#888888", size = 4) +
geom_text(data = data %>% filter(day == "10"),
aes(label = team, x = 10.5), hjust = 0.5,
fontface = "bold", color = "#888888", size = 4) +
labs(x = 'Day', y = 'Rank', title = 'Team Ranking by Day') +
my_theme()
Wir können auch leicht eine der Zeilen hervorheben, indem wir ein Argument scale_color_manual() hinzufügen. Zum Beispiel machen wir im folgenden Code die Linie für Team A lila und die Linie für alle anderen Linien grau:
ggplot(data, aes(x = as.factor(day), y = rank, group = team)) +
geom_line(aes(color = team, alpha = 1), size = 2) +
geom_point(aes(color = team, alpha = 1), size = 4) +
geom_point(color = "#FFFFFF", size = 1) +
scale_y_reverse(breaks = 1:nrow(data)) +
scale_x_discrete(breaks = 1:10) +
theme(legend.position = 'none') +
geom_text(data = data %>% filter(day == "1"),
aes(label = team, x = 0.5), hjust = .5,
fontface = "bold", color = "#888888", size = 4) +
geom_text(data = data %>% filter(day == "10"),
aes(label = team, x = 10.5), hjust = 0.5,
fontface = "bold", color = "#888888", size = 4) +
labs(x = 'Day', y = 'Rank', title = 'Team Ranking by Day') +
my_theme() +
scale_color_manual(values = c('purple', 'grey', 'grey', 'grey', 'grey'))
Wir könnten auch mehr als eine Zeile hervorheben, wenn wir möchten:
ggplot(data, aes(x = as.factor(day), y = rank, group = team)) +
geom_line(aes(color = team, alpha = 1), size = 2) +
geom_point(aes(color = team, alpha = 1), size = 4) +
geom_point(color = "#FFFFFF", size = 1) +
scale_y_reverse(breaks = 1:nrow(data)) +
scale_x_discrete(breaks = 1:10) +
theme(legend.position = 'none') +
geom_text(data = data %>% filter(day == "1"),
aes(label = team, x = 0.5), hjust = .5,
fontface = "bold", color = "#888888", size = 4) +
geom_text(data = data %>% filter(day == "10"),
aes(label = team, x = 10.5), hjust = 0.5,
fontface = "bold", color = "#888888", size = 4) +
labs(x = 'Day', y = 'Rank', title = 'Team Ranking by Day') +
my_theme() +
scale_color_manual(values = c('purple', 'steelblue', 'grey', 'grey', 'grey'))
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 …