Ändern Sie die Größe des Achsentitels und der Beschriftungen in ggplot2

145

Ich habe eine wirklich einfache Frage, auf die ich nur schwer eine Antwort finden kann. Ich hoffte, jemand hier könnte mir helfen.

Ein Beispiel für einen Datenrahmen ist unten dargestellt:

a <- c(1:10)
b <- c(10:1)
df <- data.frame(a,b)
library(ggplot2)
g = ggplot(data=df) + geom_point(aes(x=a, y=b)) +
  xlab("x axis")
g

Ich möchte nur erfahren, wie ich die Textgröße der Achsentitel und der Achsenbeschriftungen ändere.

KT_1
quelle

Antworten:

313

Sie können den Achsentext und die Beschriftungsgröße mit Argumenten axis.text=und axis.title=in Funktion ändern theme(). Wenn Sie beispielsweise nur die Titelgröße der x-Achse ändern müssen, verwenden Sie axis.title.x=.

g+theme(axis.text=element_text(size=12),
        axis.title=element_text(size=14,face="bold"))

Es gibt gute Beispiele für die Einstellung verschiedener theme()Parameter auf der Seite ggplot2 .

Didzis Elferts
quelle
8
Es gibt rel()jetzt auch eine sehr intuitive Funktion . zBsize = rel(2.0)
HongboZhu
2
Wie würde man die labs(x = "x axis")Textgröße ändern, ohne den Wert der Ticks auf der x-Achse zu ändern ?
Baxx
53

Ich denke, ein besserer Weg, dies zu tun, besteht darin, das base_sizeArgument zu ändern . Dadurch werden die Textgrößen konsistent erhöht.

g + theme_grey(base_size = 22)

Wie hier zu sehen .

Chunjiw
quelle
5
Wenn Sie bereits andere themeInstanzen haben, kann dies zu Konflikten führen.
Adam Erickson
10

Wenn Sie viele Diagramme erstellen, können Sie es leid sein, für jedes Diagramm die Codezeilen einzugeben, die die Größe der Titel und Texte steuern. Normalerweise erstelle ich ein Objekt (der Klasse "theme" "gg"), das die gewünschten Designmerkmale definiert. Sie können dies am Anfang Ihres Codes tun.

My_Theme = theme(
  axis.title.x = element_text(size = 16),
  axis.text.x = element_text(size = 14),
  axis.title.y = element_text(size = 16))

Als Nächstes müssen Sie lediglich My_Theme zu Ihren Diagrammen hinzufügen.

g + My_Theme
Wenn Sie ein anderes Diagramm haben, g1, schreiben Sie einfach:
g1 + My_Theme 
und so weiter.
Rtist
quelle
4

Das Ändern der Größe (fast) aller Textelemente an einem Ort und synchron rel()ist sehr effizient:
g+theme(text = element_text(size=rel(3.5))

Möglicherweise möchten Sie die Zahl etwas anpassen, um das optimale Ergebnis zu erzielen. Es werden sowohl die Beschriftungen und Titel der horizontalen als auch der vertikalen Achse sowie andere Textelemente im gleichen Maßstab festgelegt. Eine Ausnahme bilden die Titel von facettierten Gittern, die manuell auf denselben Wert gesetzt werden müssen, z. B. wenn in einem Diagramm sowohl x- als auch y-Facetten verwendet werden:
theme(text = element_text(size=rel(3.5)), strip.text.x = element_text(size=rel(3.5)), strip.text.y = element_text(size=rel(3.5)))

InterestedInR
quelle