Ich zeichne ein Diagramm mit einer kategorialen Variablen auf der x-Achse und einer numerischen Variablen auf der y-Achse.
Bei der x-Achse führt die Standardtextformatierung bei vielen Datenpunkten dazu, dass sich die Beschriftung für jedes Häkchen mit anderen Beschriftungen überlappt. Wie ändere ich (a) die Schriftgröße für meinen Achsentext und (b) die Ausrichtung des Texts, sodass der Text senkrecht zur Achse steht?
Benutze theme()
:
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20),
axis.text.x = element_text(angle=90, hjust=1))
#vjust adjust the vertical justification of the labels, which is often useful
Es gibt viele gute Informationen darüber, wie Sie Ihre ggplots formatieren können hier . Sie können eine vollständige Liste der Parameter anzeigen, die Sie (im Grunde genommen alle) mit ?theme
ändern können.
Das Gleiche gilt für Steen über die Verwendung von theme()
. Hier finden Sie allgemeine Themenattribute für Achsentexte und Titel.
ggplot(mtcars, aes(x = factor(cyl), y = mpg))+
geom_point()+
theme(axis.text.x = element_text(color = "grey20", size = 20, angle = 90, hjust = .5, vjust = .5, face = "plain"),
axis.text.y = element_text(color = "grey20", size = 12, angle = 0, hjust = 1, vjust = 0, face = "plain"),
axis.title.x = element_text(color = "grey20", size = 12, angle = 0, hjust = .5, vjust = 0, face = "plain"),
axis.title.y = element_text(color = "grey20", size = 12, angle = 90, hjust = .5, vjust = .5, face = "plain"))
Zusätzlich zu früheren Lösungen können Sie die Schriftgröße relativ für den base_size
angeben, der in Themen wie theme_bw()
(wobei base_size
11 ist) enthalten ist, indem Sie die Funktion rel()
verwenden.
Zum Beispiel:
ggplot(mtcars, aes(disp, mpg)) +
geom_point() +
theme_bw() +
theme(axis.text.x=element_text(size=rel(0.5), angle=90))
Verwenden Sie theme ():
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20))
Die Verwendung des Attributs "fill" hilft in solchen Fällen. Sie können den Text mit element_blank()
von der Achse entfernen und ein mehrfarbiges Balkendiagramm mit einer Legende anzeigen. Ich zeichne eine Häufigkeit der Teileentfernung in einer Reparaturwerkstatt wie folgt
ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x = element_blank())
Ich habe mich für diese Lösung entschieden, da ich viele Balken im Balkendiagramm hatte und nicht in der Lage war, eine geeignete Schriftgröße zu finden, die sowohl lesbar als auch klein genug ist, um sich nicht zu überlappen.
Wenn Sie viele Diagramme erstellen, ist es sinnvoll, sie global festzulegen (relevanter Teil ist die zweite Zeile, drei Zeilen zusammen sind ein funktionierendes Beispiel):
library('ggplot2')
theme_update(text = element_text(size=20))
ggplot(mpg, aes(displ, hwy, colour = class)) + geom_point()