gpt4 book ai didi

r - 将轴标签添加到 R 中的 tableGrob

转载 作者:行者123 更新时间:2023-12-02 08:14:33 26 4
gpt4 key购买 nike

使用默认表输出时,默认情况下是使用参数名称(在本例中为 k1 和 k2)绘制“轴”标签。这对于比较集群成员资格特别有用,最重要的是要表示哪个集群是行,哪个是列。

table(
k1=matrix(1:4, 2),
k2=matrix(1:4, 2)
)

k2
k1 1 2 3 4
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1

我正在尝试使用 tableGrob 输出一些表格,这些表格与 grid.arrange 中的其他 ggplot 组件组成。但是,轴标签丢失了。

grid.arrange(tableGrob(
table(
k1=matrix(1:4, 2),
k2=matrix(1:4, 2)
)
))

missingAxis

我想要做的就是包含这些内容,甚至在制作 grob 后手动包含它们。

谢谢

编辑:尝试使用 annotation_custom:

annotation_custom

代码:

ggTableAxis2 <- function(t) {
my_grob <- tableGrob(t)

my_plot <- ggplot(mapping = aes(k2, k1)) +
annotation_custom(my_grob) +
scale_x_continuous(position = 'top') +
theme(axis.title = element_text(angle = 0, hjust = 0),
axis.title.x.top = element_text(hjust = 0))
return(my_plot)
}

grid.arrange(
ggTableAxis2(
table(
k1=matrix(1:4, 2),
k2=matrix(1:4, 2)
)
),
ggTableAxis2(
table(
k1=matrix(1:4, 2),
k2=matrix(1:4, 2)
)
),
nrow=1
)

最佳答案

不确定你想要标签的确切位置,但将 grobs 添加到 gtable 可能是最简单的,

tbl <- table(
longlabel1=matrix(1:4, 2),
longlabel2=matrix(1:4, 2)
)

nms <- names(dimnames(tbl))


library(gridExtra)
library(grid)
library(gtable)
grid.newpage()

tg <- textGrob(nms[1], x=0, hjust=0)
lg <- textGrob(nms[2], x=1, hjust=1)
g <- tableGrob(tbl)
g <- gtable_add_rows(g, unit(1,"line"), 0)
g <- gtable_add_cols(g, grobWidth(lg), 0)
g <- gtable_add_grob(g, tg, t = 1, l=3, r=ncol(g))
g <- gtable_add_grob(g, lg, l = 1, t=2)
grid.draw(g)

enter image description here

关于r - 将轴标签添加到 R 中的 tableGrob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43166733/

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