2

行名のカットオフが発生する理由を誰かが解決できますか? ストリング ラップの長さとは無関係です。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)

これをくれる(ズームでごめんなさい)

左揃えの表

一方、「中心」を指定すると、これが得られます

main_table <- tableGrob(x,cols = colnames(x), show.colnames = TRUE, row.just = "center")
grid.arrange(main_table)

中央揃えのテーブル

何か案は?

psプロットウィンドウで「ズーム」をクリックすると、画像がそのようになる理由がわかりませんが、保存/エクスポートすると、拡大されたバージョンのみが保存されます...

4

1 に答える 1

2

使用可能な幅が文字列の幅から計算されるためだと思いますが、正当化によりテキストが右にシフトします。hjust/x の相互作用は、グリッドで常に私を混乱させてきました。あなたはそれを「修正」することができます、

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")

しかし、それはあまり良い解決策ではありません。

于 2015-06-12T06:14:19.357 に答える