2013-06-12 15 views
5

Gdy utworzę tabelęGrob z lewymi łańcuchami, wynik końcowy pokazuje ciągi przycięte na końcu. Czy to błąd, czy coś przeoczyłem?Nieprawidłowe wyrównanie w lewo przy użyciu tabeliGrob

library(gridExtra) 
slices <- c(10, 12, 4, 16, 8) 
lbls <- c("US", "UK", "long string left justified but is clipped at the end", "Germany", "France") 
z <- data.frame(lbls,slices) 
grid.newpage() 
grid.draw(tableGrob(z, core.just="left")) 

Odpowiedz

10

To błąd; autor pakietu wyraźnie nie rozumie uzasadnienia tekstu w siatce.

Można rodzaju jak go naprawić tak,

textii <- function(d, gp=gpar(), name="row-label-", 
        just="center", parse=TRUE){ 
    x <- switch(just, "center"=0.5, "right"=1, "left"=0) 
    parseglobal <- parse 
    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") 
grid.table(z, core.just="left") 

i/lub ustawić parametr padding.h dać więcej miejsca. Westchnienie, co za bałagan.

+0

działa dobrze +1! Przy okazji, niezły humor! Czy się mylę, czy to ty jesteś autorem? :-) – Michele

+1

'tableGrob' pozostaje bardzo pomocnym narzędziem pomimo tych deprecjacji. –

+0

Właśnie przetestowałem to z "\ n" i "padding.h = jednostką (10," mm ")', a wyniki były doskonałe. –

Powiązane problemy