图表最有用的输出格式是什么?

时间:2013-09-06 01:36:11

标签: r

在结束投票之前,让我说我理解这个问题可能是主观的,预期的答案可能开始由“它取决于”。然而,这是我遇到的一个实际相关的问题,因为我正在创建越来越多的图表,我不一定知道我将使用它们的确切方式,或者没有时间来测试最终的用例立即。

所以我利用SO R用户的经验来获得选择其中一个的好理由,jpg(),bmp(),png(),tiff(),pdf()以及可能的选项。我没有R的经验和不同格式的知识可以明智地选择。

潜在用例:

  • 在算法运行时间之前或期间快速查看
  • 演示文稿(主要是.ppt)
  • 报道(字或乳胶)
  • 出版(互联网)
  • 存储(没有太多损失,稍后将其转换为特定用途)
  • 我遗忘的任何相关内容

谢谢!我很高兴让问题更清楚。

3 个答案:

答案 0 :(得分:11)

为了扩展我的评论,没有真正简单的答案,但我的建议是:

  1. 我的第一个完全灵活的选择是简单地存储绘图中使用的最终原始数据和一些用于生成绘图的R代码。这样您就可以轻松地将输出发送到适合您特定用途的任何设备。根据您可以调用的png() / pdf()来设置几个基本模板并不是一项艰巨的任务。

  2. 使用svg()设备。正如@gung所述,使用pdf()svg()cairo_ps()cairo_pdf()存储输出是保留可缩放矢量图像的唯一实际选项。我倾向于倾向于svg()而不是pdf(),因为使用像Inkscape这样的程序可以获得更多的编辑选项。它也正在成为一种广泛支持的互联网出版格式(见 - http://caniuse.com/svg

  3. 另一方面,如果您是乳胶用户,大多数头痛似乎都可以通过直接pdf()来解决 - 您通常可以使用Inkscape或Imagemagick等命令行实用程序导入和转换pdf文件如果你必须格式化转移。

  4. 对于Word / Powerpoint交互,如果您在Windows上运行R,则还可以使用win.metafile()直接导出,这将为您提供可导入Word的可伸缩/组件emf图像或Powerpoint直接。我听说Linux上有人running R through Wine or using intermediary steps将emf文件输出供以后使用。对于Mac,有roundabout pathways as well

  5. 所以,总结一下,按照偏好顺序。

    1. 根本不存储图像,存储代码以生成图像
    2. 使用svg / pdf并根据需要转换格式。
    3. 直接使用备份win.metafile导出用于无法使用Word / Powerpoint进行转义且主要基于Windows系统的情况。

答案 1 :(得分:5)

到目前为止,这个问题的答案都推荐了基于矢量格式的输出图。这将为您提供最佳输出,允许您根据需要调整图像大小(无论是网页,文档还是演示文稿),但这需要计算成本。

对于我自己的工作,我经常发现以足够分辨率的光栅格式保存我的绘图会更方便。您可能希望每当您的数据需要非常重要的时间进行绘图时就这样做。

我找到栅格格式的一些示例更方便:

  1. 曼哈顿地块:显示基因组中数十万个DNA标记的p值显着性的图。
  2. 大型热图:在两组人群中聚集5000个差异表达的基因,一组患有疾病,一组健康。
  3. 网络渲染:当绘制通过边缘相互连接的大量节点时,重新绘制边缘(作为矢量)会降低计算机速度。
  4. 归根结底,这取决于你自己的理智中的权衡。更让你烦恼的是什么?你的电脑试图重绘图像?或计算出以光栅格式渲染图像的确切尺寸,以便它对您的最终发布媒体看起来不太糟糕?

答案 2 :(得分:1)

这里要记住的最基本的区别是raster graphicsvector graphics。通常,矢量图形将在以后为您保留选项。在您列出的选项中,jpegbmptiffpng是栅格格式;只有pdf会给你矢量图形。因此,这可能是您列出的选项的最佳默认值。