我正在尝试制作一个相关热图,其中 x 轴使用cowplot::switch_axis_position
. 我有不同长度的轴标签,我希望标签左对齐(或者更确切地说是底部对齐,因为它们旋转了 90 度)。虽然我设法对齐标签,但它们被移到了图的上方。
library(reshape2)
library(ggplot2)
library(cowplot)
# some toy data
set.seed(1)
mydata <- mtcars[, c(1, 3, 4, 5, 6, 7)]
# to show difference in justification better, make names of unequal length
names(mydata) = paste0(sample(c("mtcars_", ""), 6, replace = TRUE), names(mydata))
cormat <- round(cor(mydata), 2)
melted_cormat <- melt(cormat)
head(melted_cormat)
首先是 x 轴移动到顶部的图,并且标签垂直居中:
plot <- ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) +
geom_tile() +
theme_bw(base_size=20) + xlab("") + ylab("") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 0.5))
ggdraw(switch_axis_position(plot, 'x'))
然后我使用与上面相同的代码,但hjust = 0
改为左对齐 x 轴文本。它确实对齐了文本,但是文本奇怪地远离图形,因此变量名称被截断:
关于如何解决这个问题的任何想法?