ค่าของhjust
และvjust
ถูกกำหนดระหว่าง 0 ถึง 1 เท่านั้น:
- 0 หมายถึงชิดซ้าย
- 1 หมายถึงความชอบธรรม
ที่มา: ggplot2, Hadley Wickham, หน้า 196
(ใช่ฉันรู้ว่าในกรณีส่วนใหญ่คุณสามารถใช้งานได้นอกเหนือจากช่วงนี้ แต่อย่าคาดหวังว่ามันจะทำงานในลักษณะเฉพาะใด ๆ นี่เป็นข้อมูลจำเพาะภายนอก)
hjust
ควบคุมการจัดแนวแนวนอนและvjust
การควบคุมแนวตั้ง
ตัวอย่างควรทำให้ชัดเจน:
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))
เพื่อให้เข้าใจสิ่งที่เกิดขึ้นเมื่อคุณเปลี่ยนhjust
ข้อความในแกนคุณต้องเข้าใจว่าการจัดตำแหน่งแนวนอนสำหรับข้อความแกนถูกกำหนดโดยไม่เกี่ยวข้องกับแกน x แต่เป็นพล็อตทั้งหมด (ซึ่งรวมถึงข้อความแกน y) (นี่คือในมุมมองของฉันโชคไม่ดีมันจะมีประโยชน์มากขึ้นที่จะมีการจัดตำแหน่งสัมพันธ์กับแกน)
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)
ในการสำรวจว่าเกิดอะไรขึ้นกับการvjust
กำหนดป้ายชื่อแกน:
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)