【问题标题】:Multiple plots in R on a pdf with a loopR中带有循环的pdf上的多个图
【发布时间】:2019-03-25 20:50:44
【问题描述】:

我想我需要有关循环的帮助。您将如何使用以下数据在单独的 pdf 页面上绘制多个绘图:

pdf第1页: 马自达RX4 mpg vs cyl 和 mpg vs vs 的 2 个面板图

pdf 第 2 页: 大黄蜂 4 D mpg vs cyl 和 mpg vs vs 的 2 个面板图

Valiant 也是如此。

型号 mpg cyl vs 马自达 RX4 21.0 6 0 马自达 RX4 21.0 6 0 马自达 RX4 22.8 4 1 大黄蜂 4 D 21.4 6 1 大黄蜂 4 D 18.7 8 0 英勇 18.1 6 1 英勇 21.4 6 1 英勇 21.0 6 0 英勇22.8 6 0

谢谢。

【问题讨论】:

    标签: r for-loop plot


    【解决方案1】:

    源自其他地方的示例 (https://www.researchgate.net/post/How_to_save_the_graphics_in_several_separate_pages_with_R)

    # Create pdf
    pdf(...)
    
    # Create different plots
    plot1(...)
    plot2(...)
    plot3(...)
    
    dev.off()
    

    注意:在pdf()中设置参数onefile=FALSE

    【讨论】:

    • 感谢您的 cmets。我忘了说,虽然我为 3 款车型提供了它,但实际上有将近 100 款,所以我正在考虑将它放入一个循环中。
    【解决方案2】:

    在这种情况下,我要做的是在带有gridExtra 的一页上设置我想要的图,将其保存为 PDF,然后将所有这些 PDF 与 ghostscript 连接起来。

    在 R 中:

    library(gridExtra)
    library(ggplot2)
    
    plot_one <- ggplot() + geom_...
    plot_two <- ggplot() + geom_...
    
    # Arrange the two plots one per row.
    # grid.arrange'd plots can be nested, too!
    two_rows <- grid.arrange(plot_one, plot_two, nrow = 2)
    
    ggsave("dataset_1.pdf", two_rows)
    
    # repeat for second, third, etc datasets so you end up with dataset_2.pdf etc
    

    然后将它们连接到一个带有多个页面的 PDF 与 ghostscript:

    gs -sDEVICE=pdfwrite \
       -dNOPAUSE \
       -dQUIET \
       -dBATCH \
       -sOutputFile=multipage.pdf \
       dataset_1.pdf dataset_2.pdf
    

    【讨论】:

      猜你喜欢
      • 2017-05-03
      • 2022-01-21
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多