使用默认表输出时,默认情况下是使用参数名称(本例中为 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
Run Code Online (Sandbox Code Playgroud)
我试图利用它tableGrob
来输出一些表格,这些表格与grid.arrange
. 但是,轴标签会丢失。
grid.arrange(tableGrob(
table(
k1=matrix(1:4, 2),
k2=matrix(1:4, 2)
)
))
Run Code Online (Sandbox Code Playgroud)
我想做的就是将它们包括在内,甚至在制作 grob 后手动将它们包括在内。
谢谢
编辑:尝试使用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
)
Run Code Online (Sandbox Code Playgroud)
不确定你到底想要标签在哪里,但将 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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1720 次 |
最近记录: |