使用 row.just = "left 时,tableGrob 中的行名称被截断
Row names in tableGrob are cut off when using row.just = "left
任何人都可以解决为什么我的行名称会被截断吗?它与字符串环绕的长度无关。指定 row.just = "center" 不会截断行名称。
x <- data.frame(row.names=paste("Very very name goes in here somewhere yep it is a looooonnngggg name! phew that was a long name",1:10))
# string wrap long names
rownames(x) <- sapply(lapply(rownames(x), strwrap, width=40), paste, collapse="\n")
# data frame
x[,1] <- 1:10
x[,2] <- sample(1:100,10)
x[,3] <- sample(LETTERS[1:26],10)
colnames(x) <- c("Value 1", "Value 2", "Label")
# create table
main_table <- tableGrob(x,cols = colnames(x), show.colnames = TRUE, row.just = "left")
# display table (is there another way to display?
grid.arrange(main_table)
给我这个(抱歉变焦)
而指定 "center" 给了我这个
main_table <- tableGrob(x,cols = colnames(x), show.colnames = TRUE, row.just = "center")
grid.arrange(main_table)
有什么想法吗?
p.s。我不确定为什么图像是这样的,当我在绘图 window 中单击 'zoom' 时,它们是完整的表格,但 saving/exporting 仅保存放大版本...
我猜这是因为可用宽度是根据字符串宽度计算出来的,但是调整将文本向右移动。 hjust/x 网格中的交互总是让我感到困惑。你可以 "fix" 它与
textii <- function(d, gp=gpar(), name="row-label-",
just="center", parse=TRUE){
x <- switch(just, "center"=0.5, "right"=1, "left"=0)
parseglobal <- parse
## allow the correct space to fit well in a rectangle
function(ii, parse=parseglobal){
lab <- if(parse) parse(text=d[ii]) else d[ii]
textGrob(x=x, label=lab, just=just, gp=gp, name=paste(name, ii, sep=""))
}
}
assignInNamespace("textii", textii, "gridExtra")
但这恐怕不是一个很好的解决方案。
任何人都可以解决为什么我的行名称会被截断吗?它与字符串环绕的长度无关。指定 row.just = "center" 不会截断行名称。
x <- data.frame(row.names=paste("Very very name goes in here somewhere yep it is a looooonnngggg name! phew that was a long name",1:10))
# string wrap long names
rownames(x) <- sapply(lapply(rownames(x), strwrap, width=40), paste, collapse="\n")
# data frame
x[,1] <- 1:10
x[,2] <- sample(1:100,10)
x[,3] <- sample(LETTERS[1:26],10)
colnames(x) <- c("Value 1", "Value 2", "Label")
# create table
main_table <- tableGrob(x,cols = colnames(x), show.colnames = TRUE, row.just = "left")
# display table (is there another way to display?
grid.arrange(main_table)
给我这个(抱歉变焦)
而指定 "center" 给了我这个
main_table <- tableGrob(x,cols = colnames(x), show.colnames = TRUE, row.just = "center")
grid.arrange(main_table)
有什么想法吗?
p.s。我不确定为什么图像是这样的,当我在绘图 window 中单击 'zoom' 时,它们是完整的表格,但 saving/exporting 仅保存放大版本...
我猜这是因为可用宽度是根据字符串宽度计算出来的,但是调整将文本向右移动。 hjust/x 网格中的交互总是让我感到困惑。你可以 "fix" 它与
textii <- function(d, gp=gpar(), name="row-label-",
just="center", parse=TRUE){
x <- switch(just, "center"=0.5, "right"=1, "left"=0)
parseglobal <- parse
## allow the correct space to fit well in a rectangle
function(ii, parse=parseglobal){
lab <- if(parse) parse(text=d[ii]) else d[ii]
textGrob(x=x, label=lab, just=just, gp=gp, name=paste(name, ii, sep=""))
}
}
assignInNamespace("textii", textii, "gridExtra")
但这恐怕不是一个很好的解决方案。