gpt4 book ai didi

r - 使用 cowplot 将 x 轴切换到顶部时的左对齐轴标签

转载 作者:行者123 更新时间:2023-12-04 18:35:47 25 4
gpt4 key购买 nike

我正在尝试制作一个相关热图,其中使用 cowplot::switch_axis_position 将 x 轴移动到顶部.我有不同长度的轴标签,我希望标签左对齐(或者更确切地说是底部对齐,因为它们旋转了 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'))
link
然后我使用与上面相同的代码,但使用 hjust = 0而是左对齐 x 轴文本。它确实对齐文本,但文本奇怪地远离图形移动,因此变量名称被切断: link
关于如何解决这个问题的任何想法?

最佳答案

请注意:最新版本的 cowplot 中不再存在此错误。在 CRAN 上。
旧答案:
这似乎是 angle = 90 的特殊情况的错误.我们可以通过向 angle 添加一个任意小的值来规避这一点。 .

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 + 1e-09, hjust = 0, vjust=1)) +
coord_equal(expand = 0)
ggdraw(switch_axis_position(plot, 'x'))
enter image description here

关于r - 使用 cowplot 将 x 轴切换到顶部时的左对齐轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com