Matlab 颜色映射到 SVG 或 PDF

Matlab color maps to SVG or PDF

我正在使用 plotsurf/mesh 在 matlab 中生成多个图。当我尝试将它们保存为 SVG 或 PDF 时(从图 window 保存菜单),我得到 plot 的漂亮矢量图形,但 [=] 的 SVG 或 PDF 中嵌入了非矢量图形11=] 或 mesh.

知道如何解决这个问题吗?

export_fig 是将图形导出为各种文件格式的宏。安装 GhostScript 后,它可以直接以 pdf 格式导出。可以从 File Exchange.

下载它

使用

export_fig('foo','-pdf','-nocrop')

它产生这个结果(Adobe Acrobat 的屏幕截图):

如果你仔细观察,你可以看到 surf 图的结果中的三角测量边缘("missing pixels" 的线)和第二张图片中 contour 图的分割。

您可以看到光栅化发生在最后一步(在本例中为 PrintScreen),因此生成的 pdf 由矢量格式的片段组成,因此 line 图的标签、轴和结果将是在向量中

如果将此 pdf 导出为位图,比如 png,那些 "missing" 像素消失,并执行第一张图像的 "see-through" 效果。请参见(Adobe Acrobat 9 Pro;隔行扫描:Adam7,滤镜:自适应)

分辨率 300 px/in(分辨率 2400 px/in 的图像太大)

分辨率 2400 px/in

图是由此 answer 中的代码生成的。

我不知道原因,但我已经找到问题所在了。

我正在使用 mesh,它产生了类似的东西(绘图和颜色条):

尝试使用 surf; shading interppcolor 生成了巨大的文件,所以我避免了它们。

我正在寻找的选项与使用 imagesc 而不是 mesh 时得到的选项非常相似:

它并不完美,由于轴或颜色条主框,您会看到一些奇怪的细白色对角线: 但是我得到了足够高质量的矢量文件。

此外,如果您在同一个 figure 中的多个 subplots 中使用 meshimagesc,您也会得到一个光栅图像 imagesc嵌入pdf或svg文件: