r - 将 R 图导出为多种格式

标签 r plot graphics

由于可以将 R 图导出为 PDF 或 PNG 或 SVG 等,是否也可以一次将 R 图导出为多种格式?例如,在不重新计算绘图的情况下将绘图导出为 PDF、PNG 和 SVG?

最佳答案

在不使用 ggplot2 和其他包的情况下,这里有两个替代解决方案。

  • 创建一个使用指定设备生成绘图的函数并对其进行 sapply
    # Create pseudo-data
    x <- 1:10
    y <- x + rnorm(10)
    
    # Create the function plotting with specified device
    plot_in_dev <- function(device) {
      do.call(
        device,
        args = list(paste("plot", device, sep = "."))  # You may change your filename
      )
      plot(x, y)  # Your plotting code here
      dev.off()
    }
    
    wanted_devices <- c("png", "pdf", "svg")
    sapply(wanted_devices, plot_in_dev)
    
  • 使用内置函数 dev.copy
    # With the same pseudo-data
    # Plot on the screen first
    plot(x, y)
    
    # Loop over all devices and copy the plot there
    for (device in wanted_devices) {
      dev.copy(
        eval(parse(text = device)),
        paste("plot", device, sep = ".")  # You may change your filename
      )
      dev.off()
    }
    

  • 第二种方法可能有点棘手,因为它需要 non-standard evaluation 。然而它也能工作。这两种方法都适用于包括 ggplot2 在内的其他绘图系统,只需将绘图生成代码替换为上面的 plot(x, y) - 您可能需要显式地对 ggplot 对象进行 print

    关于r - 将 R 图导出为多种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48132169/

    相关文章:

    java - AffineTransform 线性插值

    r - 隔离r数据框中的部分文本

    r - 如何在 R 中拆分数据集和绘图

    r - 给出平均时间图 (seqmtplot) 的准确值

    r - 在 ggplot2 输出中组合希腊语和表达式

    java - 我的台词没有去到它们应该去的地方

    r - 在 ggplot 中使用 ..prop.. 时如何为条形图着色?

    r - 我在 R 中有一个大表,现在我想选择奇数行并在该行的第一个元素之前粘贴一个标签

    python - 我的时间序列图显示了错误的顺序

    opencv - 为什么sift特征对平面单应变换也是不变的