我用的是R的gridExtra软件包。
我想将第二列的编号与左边对齐,而不更改第一列名称的对齐方式。有可能吗?谢谢!
library(gridExtra)
library(grid)
names=c("name1","name2","name3","long name","very long name")
values1=c(100000000,70000,20,600000000000000000,500)
values1=format(values1,big.mark=".",decimal.mark=",",scientific=FALSE)
d=data.frame(names=names,values1=values1)
g1 <- tableGrob(d)
grid.newpage()
grid.draw(g1)

谢谢。
发布于 2016-01-23 13:24:30
使用gridExtra维基表部分中访问现有grobs的想法,您可以直接编辑gtable的grobs。
g1 <- tableGrob(d)
# identify the grobs to change
# third column of gtable and core foreground text
id <- which(grepl("core-fg", g1$layout$name ) & g1$layout$l == 3 )
# loop through grobs and change relevant parts
for (i in id) {
g1$grobs[[i]]$x <- unit(1, "npc")
g1$grobs[[i]]$hjust <- 1
}
grid.newpage()
grid.draw(g1)

发布于 2016-01-23 12:47:11
你可以试试这个:
library(gridExtra)
names=c("name1","name2","name3","long name","very long name")
values1=c(100000000,70000,20,600000000000000000,500)
values1=format(values1,big.mark=".",decimal.mark=",",scientific=FALSE)
d <- data.frame(names=names,values1=values1)
g1 <- tableGrob(d[,1, drop = FALSE])
tt2 <- ttheme_default(core = list(fg_params=list(hjust=1, x=1)),
rowhead = list(fg_params=list(hjust=1, x=1)))
g2 <- tableGrob(d[,2, drop = FALSE], rows = NULL, theme = tt2)
grid.arrange(arrangeGrob(grobs = list(g1, g2 ), nrow = 1) , widths = c(1,1))

发布于 2016-01-24 07:21:11
还有一个选择,
g1 <- tableGrob(d[,-2, drop=FALSE])
g2 <- tableGrob(d[,2, drop=FALSE], rows = NULL,
theme = ttheme_default(core = list(fg_params=list(hjust=1, x=0.95))))
g <- gtable_combine(g1,g2)
grid.newpage()
grid.draw(g)

https://stackoverflow.com/questions/34962951
复制相似问题