Возникли проблемы с выравниванием графического объекта сетки - прочитал все документы, которые я смог найти, включая книгу Мюррелла, но безуспешно. Я думаю, что то, что я пытаюсь сделать, довольно просто, поэтому, надеюсь, мне не хватает простого.
Вот воспроизводимый пример, который создаст PDF-файл всех авиаперевозчиков по пунктам назначения в пакете Hadley hflights
(отражает то, что я пытаюсь сделать с другим набором данных).
require(hflights)
require(gridExtra)
require(Cairo)
make_table <- function(df) {
p <- tableGrob(
df
,padding.h=unit(.25, "mm")
,show.rownames=FALSE
,gpar.coretext = gpar(fontsize=8, lineheight=0)
#this doesn't seem to justify the table
,just = c("bottom")
,show.box = T
)
return(p)
}
dests <- unique(hflights$Dest)
#list to hold the plots
plot_list <- list()
#loop over destinations and make a simple report
for (i in dests) {
#just this destination
this_dest <- hflights[hflights$Dest == i, ]
#the title
title <- textGrob(label = i, gp = gpar(fontsize=72, fontface = 'bold'))
#a table of carriers
carriers <- unique(this_dest$UniqueCarrier)
carriers <- data.frame(
carrier=carriers
)
carrier_table <- make_table(carriers)
#put them together
p <- arrangeGrob(
title, carrier_table
,nrow=2
)
plot_list[[i]] <- p
}
#print the report
Cairo(
width = 11, height = 8.5
,file = paste('destinations.pdf', sep = ''), type="pdf"
,units = "in"
)
print(plot_list)
dev.off()
Я хочу, чтобы вся таблица, созданная tableGrob
(в функции make_table
), располагалась в верхней части гроба. Прямо сейчас он центрирован по вертикали и горизонтали внутри гроба. Мне нужно сделать это при вызове tableGrob
или это при вызове arrangeGrob
? Чтобы задать другой вопрос, если вышеизложенное неясно, как я могу сделать так, чтобы вся таблица (а не текст внутри нее) выравнивалась по верхнему/нижнему/левому/правому краю своего контейнера?
Спасибо!
grid
. Особенно функцияgrid.layout
полезна для создания видовых экранов нестандартного размера. У вас проблемы с кодом, связанным сarrangeGrob
, который делит бумагу на два окна просмотра одинакового размера. Как только вы привыкнете к настройке расположения окон просмотра вgrid
, вы никогда не захотите его пропустить. - person SimonG   schedule 23.08.2014