首页 > 解决方案 > 在svg中保存多个图形

问题描述

假设这个脚本生成两个通用图形“a”和“b”

library(ggplot2)

# dataset:
data=data.frame(value=rnorm(100))

# basic histogram
a <- ggplot(data, aes(x=value)) + 
  geom_histogram()

a

# dataset:
datab=data.frame(value=rnorm(70))

# basic histogram
b <- ggplot(datab, aes(x=value)) + 
  geom_histogram()

b

如何以我确定的大小将“a”图表和“b”图表保存在 .svg 格式的两个不同文件中。在这里我模拟了两个图表,但我有 12 个,我想在一个脚本中优化这个过程,而不是在每个图表上都使用导出按钮。

标签: rsvgggplot2

解决方案


使用for循环合并svg函数以将图形保存为 svg 格式。

使用您的数据,它可能看起来像这样。当然,您必须将循环的每次迭代与正确的数据集相关联。

library(ggplot2)

for(i in 1:12)
{
  p <- ggplot(data, aes(x=value)) + 
    geom_histogram()

  svg(filename = "graph%03d.svg", width = 7, height = 7)
  p
  graphics.off()
}

它回答了你的问题吗?


推荐阅读