Nilai hjust
dan vjust
hanya didefinisikan antara 0 dan 1:
- 0 berarti dibenarkan kiri
- 1 berarti benar
Sumber: ggplot2, Hadley Wickham, halaman 196
(Ya, saya tahu bahwa dalam kebanyakan kasus Anda dapat menggunakannya di luar kisaran ini, tetapi jangan berharap itu berperilaku dengan cara tertentu. Ini di luar spesifikasi.)
hjust
mengontrol justifikasi horisontal dan vjust
mengontrol justifikasi vertikal.
Contoh harus menjelaskan ini:
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))
Untuk memahami apa yang terjadi ketika Anda mengubah hjust
teks sumbu, Anda perlu memahami bahwa perataan horisontal untuk teks sumbu didefinisikan dalam kaitannya bukan dengan sumbu x, tetapi dengan keseluruhan plot (di mana ini termasuk teks sumbu y). (Menurut saya, ini disayangkan. Akan jauh lebih bermanfaat untuk memiliki keberpihakan relatif terhadap sumbu.)
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)
Untuk menjelajahi apa yang terjadi dengan vjust
penghilangan label sumbu:
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)