7

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

因此,我利用 SO R 用户的经验来获得充分的理由在 jpg()、bmp()、png()、tiff()、pdf() 以及可能的选项之间进行选择。我没有 R 的经验和不同格式的知识来明智地选择。

潜在用例:

  • 在算法运行时或运行期间快速查看
  • 演示文稿(主要是.ppt)
  • 报告(文字或乳胶)
  • 出版(互联网)
  • 存储(没有太多损失并在以后将其转换为特定用途)
  • 我忘记了任何相关的东西

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

4

3 回答 3

11

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

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

  2. 使用svg()设备。正如@gung 所指出的,使用、pdf()或存储输出是保留可缩放矢量图像的唯一真正选择。我倾向于倾向于使用 Inkscape 等程序提供的更多编辑选项,而不是更多的编辑选项。它也正在成为一种被广泛支持的互联网出版物格式(参见 - http://caniuse.com/svgsvg()cairo_ps()cairo_pdf()svg()pdf()

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

  4. 对于 Word/Powerpoint 交互,如果您在 Windows 上运行 R,您也可以直接导出使用win.metafile()它将为您提供可缩放/组件emf图像,您可以直接将其导入 Word 或 Powerpoint。我听说有人通过 Wine 运行 R 或在 Linux 上使用中间步骤来获取 emf 文件以供以后使用。对于 Mac,也有迂回路径

所以,总结一下,按优先顺序排列。

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

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

对于我自己的工作,我经常发现以足够分辨率的栅格格式保存我的图要方便得多。每当您的数据需要花费大量时间来绘制时,您可能都希望这样做。

我发现光栅格式更方便的一些示例:

  1. 曼哈顿图:显示基因组中数十万个 DNA 标记的 p 值显着性的图。
  2. 大型热图:将两组人之间的前 5000 个差异表达基因聚类,一组人患有疾病,一组人健康。
  3. 网络渲染:当绘制大量通过边相互连接的节点时,重新绘制边(作为向量)会降低计算机的速度。

最终它归结为你自己的理智的权衡。什么更让你烦恼?您的计算机在尝试重绘图像时停止运行?或者计算出以光栅格式渲染图像的确切尺寸,这样它对于您的最终出版媒体来说看起来不会很糟糕?

于 2013-09-06T06:15:29.113 回答
1

这里要记住的最基本的区别是光栅图形矢量图形。通常,矢量图形会在以后为您保留选项。在您列出的选项中jpegbmptiff、 和png是光栅格式;只会pdf给你矢量图形。因此,这可能是您列出的选项中最好的默认设置。

于 2013-09-06T03:04:19.910 回答