How to plot grid plots on a same page?

后端 未结 2 1915
梦毁少年i
梦毁少年i 2020-12-18 13:19

I am using a package (treemap) that uses grid package to produce a treemap. However, I would like to plot several of these treemaps together, to ad

相关标签:
2条回答
  • 2020-12-18 14:08

    Thanks for your question. The output of tmPlot is indeed not a saved plot.

    In the next update I will add argument vp, by which a viewport can be specified to draw in. Only if it is not specified, grid.newpage is called.

    UPDATE: You could check and test the development version at https://github.com/mtennekes/treemap

    To apply the example of Bryan Hanson:

    vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
    grid.newpage()
    pushViewport(viewport(layout = grid.layout(1, 2)))
    tmPlot(GNI2010,
      index="continent",
      vSize="population",
      vColor="GNI",
      type="value",
      vp = vplayout(1,1))
    tmPlot(GNI2010,
      index=c("continent", "iso3"),
      vSize="population",
      vColor="GNI",
      type="value",
      vp = vplayout(1,2))
    
    0 讨论(0)
  • 2020-12-18 14:20

    Here's an approach that is very flexible for any grid graphics:

    vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
    grid.newpage()
    pushViewport(viewport(layout = grid.layout(1, 2)))
    print(a, vp = vplayout(1,1))
    print(b, vp = vplayout(1,2))
    

    Where a and b are your saved plot objects. So test each plot individually ahead of time, save them as a, b, ... then plot them as above.

    Oh, and if tmPlot always does grid.newpage then check to see if it has a has new.page argument which you can set to FALSE, or make a copy of the function and comment out the newpage.

    0 讨论(0)
提交回复
热议问题