2017-01-02 46 views
0

我試圖使用gridGraphics::grid.echo根據to this link這樣我就可以使用cowplotplot_grid一個ggplot結合了GvizplotTracks情節。gridGraphics :: grid.echo錯誤:表達式必須是一個長度爲1矢量

Gvizvignettethis 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的問題 '與Gviz小號grid.echo' 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

相關問題