Der Wert von hjust
und vjust
wird nur zwischen 0 und 1 definiert:
- 0 bedeutet linksbündig
- 1 bedeutet rechtsbündig
Quelle: ggplot2, Hadley Wickham, Seite 196
(Ja, ich weiß, dass Sie es in den meisten Fällen außerhalb dieses Bereichs verwenden können, aber erwarten Sie nicht, dass es sich auf eine bestimmte Weise verhält. Dies liegt außerhalb der Spezifikation.)
hjust
steuert die horizontale Ausrichtung und vjust
die vertikale Ausrichtung.
Ein Beispiel sollte dies klarstellen:
td <- expand.grid(
hjust=c(0, 0.5, 1),
vjust=c(0, 0.5, 1),
angle=c(0, 45, 90),
text="text"
)
ggplot(td, aes(x=hjust, y=vjust)) +
geom_point() +
geom_text(aes(label=text, angle=angle, hjust=hjust, vjust=vjust)) +
facet_grid(~angle) +
scale_x_continuous(breaks=c(0, 0.5, 1), expand=c(0, 0.2)) +
scale_y_continuous(breaks=c(0, 0.5, 1), expand=c(0, 0.2))
Um zu verstehen, was passiert, wenn Sie den hjust
Text in der Achse ändern , müssen Sie verstehen, dass die horizontale Ausrichtung für den Achsentext nicht in Bezug auf die x-Achse, sondern auf das gesamte Diagramm (einschließlich des Textes auf der y-Achse) definiert ist. (Dies ist meiner Ansicht nach unglücklich. Es wäre viel nützlicher, die Ausrichtung relativ zur Achse zu haben.)
DF <- data.frame(x=LETTERS[1:3],y=1:3)
p <- ggplot(DF, aes(x,y)) + geom_point() +
ylab("Very long label for y") +
theme(axis.title.y=element_text(angle=0))
p1 <- p + theme(axis.title.x=element_text(hjust=0)) + xlab("X-axis at hjust=0")
p2 <- p + theme(axis.title.x=element_text(hjust=0.5)) + xlab("X-axis at hjust=0.5")
p3 <- p + theme(axis.title.x=element_text(hjust=1)) + xlab("X-axis at hjust=1")
library(ggExtra)
align.plots(p1, p2, p3)
So untersuchen Sie, was mit der vjust
Ausrichtung von Achsenbeschriftungen geschieht :
DF <- data.frame(x=c("a\na","b","cdefghijk","l"),y=1:4)
p <- ggplot(DF, aes(x,y)) + geom_point()
p1 <- p + theme(axis.text.x=element_text(vjust=0, colour="red")) +
xlab("X-axis labels aligned with vjust=0")
p2 <- p + theme(axis.text.x=element_text(vjust=0.5, colour="red")) +
xlab("X-axis labels aligned with vjust=0.5")
p3 <- p + theme(axis.text.x=element_text(vjust=1, colour="red")) +
xlab("X-axis labels aligned with vjust=1")
library(ggExtra)
align.plots(p1, p2, p3)