【问题标题】:How to save a grid plot in R?如何在R中保存网格图?
【发布时间】:2015-04-17 20:32:40
【问题描述】:

我有一个网格图对象 g。

class(g)
"gtable" "grob"   "gDesc" 

我可以使用 grid.draw(g) 来绘制绘图。但是,我无法找到将绘图保存到 pdf 文件的方法。

我试过了:

ggsave(g, file="plot.png")

但显然 ggsave 不适用于这样的对象。

这是 ?grid.draw 帮助页面中的一个示例:

grid.newpage()
## Create a graphical object, but don't draw it
l <- linesGrob()
## Draw it
grid.draw(l)

绘图效果很好,但保存/打印会导致问题。

有什么解决方法吗?谢谢!

【问题讨论】:

  • 试试png("myfine.png"); print(g); dev.off()。拥有reproducible example 真的很有帮助。 ggsave 用于具有ggggplot 类的ggplot2 对象。您在上面列出的类适用于较低级别的 grid 对象。 (ggplot是建立在网格上的,但它们不是一回事)
  • 谢谢!但这似乎不起作用。最简单的例子来自 ?grid.draw 帮助页面:grid.newpage(); l
  • 从您发布的示例中,哪个对象具有“gtable”类?你指的是l吗? png("myfile.png"); plot(l); dev.off() 对我来说似乎工作得很好。我不明白什么不适合你。
  • 感谢您的帮助!是的,这似乎有效!我首先尝试了 print(l) 所以它不起作用。
  • 啊,抱歉,我的 plot()s 和 print()s 搞混了。

标签: r ggplot2


【解决方案1】:

这是 MrFlick 的回答,但对于 PDF(您在问题中要求的内容)。

## Initiate writing to PDF file
pdf("path/to/file/PDFofG.pdf", height = 11, width = 8.5, paper = "letter")

## Create a graphical object g here
g # print it

## Stop writing to the PDF file
dev.off()

【讨论】:

    【解决方案2】:

    值得补充的是,更新后的ggsave 版本有助于实现所需的导出。

    # Load
    lapply(c("ggplot2",
             "gridExtra"), 
           require, 
           character.only = TRUE)
    sessionInfo()
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     
    
    other attached packages:
    [1] gridExtra_2.2.1 ggplot2_2.1.0  
    
    loaded via a namespace (and not attached):
    [1] colorspace_1.2-6 grid_3.1.1       gtable_0.2.0     munsell_0.4.3    plyr_1.8.3       Rcpp_0.12.6     
    [7] scales_0.4.0     tools_3.1.1  
    

    图表准备和导出

    a  <- ggplot(data = mtcars) +
      geom_point(aes(x = mpg, y = cyl))
    
    b  <- ggplot(data = mtcars) +
      geom_line(aes(x = wt, y = vs))
    
    # grid
    gridAB  <- grid.arrange(a, b)
    # Export
    ggsave(filename="ab.pdf", plot=gridAB)
    

    > class(gridAB)
    [1] "gtable" "gTree"  "grob"   "gDesc" 
    

    预览

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2019-04-14
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多