【问题标题】:How do I export a higher resolution image of a Mathematica Graph object?如何导出 Mathematica Graph 对象的更高分辨率图像?
【发布时间】:2023-04-09 01:54:01
【问题描述】:

如何导出我通过调用GraphPlot 获得的输出的调整大小版本 (或TreePlot,如果它们产生不同的输出)到 jpg 文件?
目前,我只是打电话给Export[file_name, G] 其中G 是调用GraphPlot 之类的结果。 我正在使用 Microsoft Office 图片管理器查看 jpg, 但是由于分辨率差,在那里重新缩放它们会产生不令人满意的结果 (我试图绘制的图表有字符串作为标签,在以这种方式重新缩放后无法制作出来)。我希望能够选择渲染 jpg 的大小/分辨率。

【问题讨论】:

标签: graph wolfram-mathematica


【解决方案1】:

正如西蒙已经指出的那样,不要将光栅格式用于矢量图形。相反,将您的绘图导出到例如可缩放矢量图形:

graph = GraphPlot[ExampleData[{"Matrix", "HB/can_292"}, "Matrix"]];
Export["graph.svg", graph]

优点是,在这样的图像中,您仍然可以调整和更改线条、多边形和颜色。最后,您可以轻松地将其导出为任意质量的图像。

请记住,对于包含线、多边形等所有具有锐利边缘的绘图,您永远不应该使用 jpg。一般来说,这是一种仅用于照片的格式,因为它的压缩是为了减小 自然 图像中的文件大小。在那些您无法识别压缩的图像中,在带有文本、线条和多边形的图像中,您肯定会注意到伪影。如果可能,请使用 png。使用浏览器放大上图。

【讨论】:

  • 还可以考虑 EPS、PDF 和(在 Windows 上)EMF,具体取决于您的要求。
  • 是的,所有其他矢量格式都与 svg 一样好。我明确提到了 svg,因为使用 Inkscape (inkscape.org) 你有一个开源绘图程序。
  • 严格来说,EMF 一般比 PDF 和 EPS 差,因为它以屏幕分辨率保真度对矢量图形进行采样,并且不能嵌入字体。
【解决方案2】:

您可以通过执行类似的操作来设置导出文件的图像大小和压缩级别

Export[file_name, G, ImageSize -> 1200, "CompressionLevel" -> 0]

【讨论】:

  • "CompressionLevel" 选项主要用于 JPG 等有损格式,它会产生巨大的文件。更好的是使用无损格式作为 PNG 用于具有纯色和锐利边缘的插图:文件小得多,质量完美。甚至更好地切换到矢量格式:PDF 或 EPS。
【解决方案3】:

我发现最好的方法是使用 ImageResolution 属性。它增加了导出图像的分辨率,但不改变比例。像这样使用它:

Export[ "image-file-name.png", image, ImageResolution -> 500 ]

【讨论】:

    【解决方案4】:

    在导出之前设置图表的大小: Graph[theGraph, ImageSize->2000]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2014-11-20
      • 2020-10-05
      相关资源
      最近更新 更多