2017-01-02 35 views
0

Я пытаюсь использовать gridGraphics::grid.echo по to this link, так что я могу совместить GvizplotTracks участок с ggplot использованием cowplot «s plot_grid.gridGraphics :: grid.echo ошибка: EXPR должен быть длиной 1 вектор

После Gviz «ы vignette и this link, вот что я делаю:

require(Gviz) 
data(geneModels) 
gtrack <- GenomeAxisTrack() 
itrack <- IdeogramTrack(genome = "hg19", chromosome = as.character(geneModels$chromosome[1])) 
grtrack <- GeneRegionTrack(geneModels, genome = "hg19",chromosome = as.character(geneModels$chromosome[1]), name = "Gene Model") 

require(gridGraphics) 

gwrap_plot <- function(x) { 
    tree <- grid::grid.grabExpr(gridGraphics::grid.echo(x)) 
    u <- grid::unit(1, 'null') 
    gtable::gtable_col(NULL, list(tree), u, u) 
} 

graphics.off() 
plotTracks(list(itrack, gtrack, grtrack)) 
track.plot <- recordPlot() 
gwrap_plot(track.plot) 

И я получаю эту ошибку:

Error in switch(x[[2]][[1]]$name, C_abline = C_abline(x[[2]]), C_plot_new = C_plot_new(x[[2]]), : 
    EXPR must be a length 1 vector 

Любая идея, что это проблема gridGraphics 's grid.echo с Gviz' s plotTracks участок?

ответ

1

grid.echo для базовой графики, Gviz кажется использовать grid графику,

p1 = grid::grid.grabExpr(plotTracks(list(itrack, gtrack, grtrack), add = TRUE)) 
p2 = ggplot2::qplot(1:10, 1:10) 

gridExtra::grid.arrange(p1, p2, ncol=2) 

enter image description here