Как взять выборку из большого графика для отображения в knitr-PDF

#r #plot #rstudio #pheatmap

#r #график #rstudio #физическая карта

Вопрос:

Я часто создаю большие графики в RStudio, которые сохраняю в PDF, но также хотел бы частично показать в отчете knitr в формате PDF. Есть ли способ создать полный объект, затем вырезать часть (в идеале верхний левый угол) и включить это второе изображение в отчет PDF?

в качестве примера, код pheatmap, который создает график с 56 столбцами и 100 строками. Я хотел бы показать только самые левые верхние 10col и 10 строк, но если я сделаю выборку входных данных, я, очевидно, получу другой график из-за кластеризации, выполняемой для разных данных. Кроме того, я хотел бы получить решение, применимое к любым типам графиков (не только к pheatmap).

 drows <- "euclidean"
dcols <- "euclidean"
clustmet <- "complete"

col.pal <- c("lightgrey","blue")

main.title <- paste("Variant (freq>", minfreq, "%) in all samples", sep="") 

hm.parameters.maj <- list(hm.maj.data, 
                      color = col.pal,
                      fontsize = 10,
                      cellwidth = 14, 
                      cellheight = 14, 
                      scale = "none",
                      treeheight_row = 200,
                      kmeans_k = NA,
                      show_rownames = T, 
                      show_colnames = T,
                      main = main.title,
                      clustering_method = clustmet,
                      cluster_rows = TRUE, 
                      cluster_cols = FALSE,
                      clustering_distance_rows = drows, 
                      clustering_distance_cols = dcols,
                      legend=FALSE)

# To draw the heatmap on screen (comment-out if you run the script from terminal)
do.call("pheatmap", hm.parameters.maj)

# To draw to file (you may want to adapt the info(header(vcf))sizes)
outfile <- paste("major-variants_heatmap_(freq>", minfreq, ")_", drows, ".pdf", sep="")
do.call("pheatmap", c(hm.parameters.maj, filename=outfile, width=24, height=35))
  

Заранее спасибо
Стефан

Комментарии:

1. Просто идея правильного подхода: выполнение кода myObject <- do.call("pheatmap", hm.parameters.maj) даст вам хорошо структурированный объект. Когда вы вызываете str(myObject) консоль, вы увидите, что вызывается атрибут myObject$gtable , который, по-видимому, содержит всю необходимую информацию, когда вы хотите создать свой измененный вывод.

2. Вот как работать с таблицами, подобными тем, которые у вас есть: cran.r-project.org/web/packages/gtable/gtable.pdf

3. Спасибо @nisole, это звучит действительно очень правильно. Я изучаю это как можно скорее.