2016-01-22 2 views
2

Моя конкретная проблема очевидна, когда я выводю 3 графика в html-отчет, используя grid.arrange, иногда обрезается последний график (который является tableGrob).tableGrob не отображается полностью между двумя графиками с использованием grid.arrange в R

Я использую 3 отдельных grid.arrange() инструкций, чтобы поместить ящик, график временных рядов и таблицуGrob в html-отчете, используя knitr.

код используется для вывода является:

grid.arrange(p1,top=main) 
    grid.arrange(p2TS) 

    if(nrow(over5)>0){ 
    tg=tableGrob(over5,theme=tt3,rows = NULL) 
    tg$widths = unit(rep(1/4, ncol(tg)), "npc") 
    grid.arrange(tg) 

    } 

Это показывает идеально, когда объект имеет Т.Г. менее примерно 10 строк данных.

Однако при тестировании больших наборов данных я обнаружил, что вывод grid.arrange(tg) в фиксированном виде «окно» в отчете не является желательным.

Мой вопрос в том, как изменить высоту выходного значка grid.arrange(tg) в соответствии с высотой объекта tg, содержащегося внутри (с некоторым верхним и нижним полям)?

Я был бы признателен за понимание механизма изменения этих свойств, чтобы я мог точно настроить мой вывод. У меня будет 3х1 сетка, отображающая все 3 выхода в одной строке кода, если это возможно, но все графики получаются сжатыми и нечитаемыми, поэтому у меня есть 3 отдельных оператора grid.arrange(). Я думаю, моя реальная проблема заключается в том, что я не понимаю, как здесь манипулируют свойствами.

справка приветствуется.

+0

Просьба указать [воспроизводимый пример] (http://stackoverflow.com/a/5963610/1412059), включая код пользователя. – Roland

+0

Привет, Роланд, извиняюсь за плохое качество вопроса. С тех пор я нашел обходное решение для использования 'print (knitr :: kable (tg))' вместо этого на 'grid.arrange (tg)', и теперь он отлично работает –

+0

Вы рекомендуется ответить на ваш собственный вопрос, если вы нашли решение. – Roland

ответ

1

Я нашел обходной путь, чтобы использовать kable, которая печатает таблицу HTML для отчета вместо grid.arrange() с tableGrob():

grid.arrange(p1,top=main) 
    grid.arrange(p2TS) 

    if(nrow(tg)>0){ 
    print(knitr::kable(tg)) 
    } 

Кроме того, как я был запущен этот код в для цикла мне нужно использовать обходной путь на this issue page, который требует, чтобы я обернул kable в инструкции print().

Смежные вопросы