Innerhalb eines ggplots
können nahezu alle dargestellten Teilbereiche verändert und angepasst werden. Einige dieser Änderungen werden wie im nachfolgenden besprechen.
Dazu schaffen wir uns zuerst nochmal ein ggplot-Objekt mit unserem Scatterplot aus der Einführung in ggplot
:
scatter <- ggplot(
pss,
aes(
stfeco,
stfdem
)
) +
geom_jitter(
alpha = .2,
col = "blue"
) +
scale_x_continuous(
breaks = seq(
0,
10,
1
)
) +
scale_y_continuous(
breaks = seq(
0,
10,
1
)
)
scatter
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Zuerst fügen wir nochmals Titel, Achsenbeschriftung und Quellen hinzu.
scatterLeg <- scatter +
labs(
x = "Satisfaction with Economy",
y = "Satisfaction with Democracy",
title = "Correlation Plot",
caption = "Data: Panem Social Survey.\n Data jittered."
)
scatterLeg
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Innerhalb der Funktion theme()
können wir Teilbereiche des Plots ansprechen und ändern. Dies umfasst u.a. folgende Eigenschaften des Plots:
plot.title
axis.title.x
/ axis.title.y
axis.text.x
/ axis.text.y
panel.grid
/ panel.grid.minor
/ panel.grid.major
plot.background
/ panel.background
Eine komplette Übersicht aller Einstellungen die in theme()
genutzt werden können findet sich in der
User-Dokumentation.
Wir werden jetzt nach und nach Veränderungen vornehmen. Zuerst werden wir die Schriftgröße, Position und das Erscheinungsbild des Titels ändern. Dies machen wir über plot.title
in theme()
. Dazu verwenden wir die Funktion element_text()
:
scatterLeg +
theme(
plot.title = element_text(
size = 25,
face = "italic",
hjust = 0.5
)
)
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Dazu haben wir die drei Argumente size
(Schriftgröße), face
(Erscheinungsbild) und hjust
(Position) genutzt.
Als nächstes wollen wir die Achsentitel bearbeiten.
scatterAxes <- scatterLeg +
theme(
plot.title = element_text(
size = 25,
face = "italic",
hjust = 0.5
),
axis.title.x = element_text(
size = 16,
color = "seagreen",
hjust = 0
),
axis.title.y = element_text(
size = 8,
color = rgb(
0,
105,
179,
maxColorValue = 255
),
hjust = 1,
face = "bold"
)
)
scatterAxes
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Anstatt eine Farbe anzugeben, kann man mit der Funktion rgb()
auch den Farbton bestimmen. Alternativ kann man auch den HTML-Code der Farbe innerhalb des Arguments color
nutzen.
scatterLeg +
theme(
plot.title = element_text(
size = 25,
face = "italic",
hjust = 0.5
),
axis.title.x = element_text(
size = 16,
color = "seagreen",
hjust = 0
),
axis.title.y = element_text(
size = 8,
color = "#0069B3",
hjust = 1,
face = "bold"
)
)
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Nun möchten wir weiter experimentieren und die Achsenticks bearbeiten. Dazu nutzen wir axis.ticks.x
bzw. axis.ticks.y
.
scatterTicks <- scatterAxes +
theme(
axis.text.x = element_text(
size = 12,
angle = 45,
color = "darkgrey"
),
axis.text.y = element_text(
size = 11,
hjust = 0,
vjust = 1
)
)
scatterTicks
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Mit dem Argument angle
können wir die Achsenbeschriftungen drehen lassen. Mit hjust
und vjust
können wir die Startposition des Texts ändern.
Als nächstes möchten wir das Grid des Plots ändern, also die Linien. Dazu nutzen wir erstmal das Argument panel.grid
und innerhalb des Arguments die Funktion element_line()
scatterGrid <- scatterTicks +
theme(
panel.grid = element_line(
color = "green",
size = 1,
linetype = "solid" # blank, solid, dashed, dotted, dotdash, longdash, twodash
)
)
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
scatterGrid
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Mit den Argumenten panel.grid.major
und panel.grid.minor
können die Haupt- und Hilfslinien getrennt bearbeitet werden. Wenn wir zum Beispiel nur die Hauptlinien wollen, machen wir folgendes:
scatterGrid <- scatterTicks +
theme(
panel.grid.major = element_line(
color = "green",
size = 1,
linetype = "solid" # blank, solid, dashed, dotted, dotdash, longdash, twodash
),
panel.grid.minor = element_blank()
)
scatterGrid
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Man kann auch die Hilfslinien getrennt nach Achsen bearbeiten. Dazu muss man einfach jeweils .x
bzw. .y
beifügen.
Zuletzt kann man noch den Hintergrund des Plots bzw. des Panels ändern. Dies geschieht über die Argumente plot.background
bzw. panel.background
. Dazu nutzt man die Funktion element_rect()
innerhalb des Arguments
scatterGrid +
theme(
plot.background = element_rect(
color ="darkgray",
size = 2,
fill = "lightpink"
),
panel.background = element_rect(
fill = "moccasin"
)
)
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).
Es gibt ebenso eine ganze Reihe an vorgefertigten Themes, die dann wiederum individuell angepasst werden können.
Eine Übersicht über vorhandene Themes gibt es hier.