pdf - 将matplotlib填充轮廓图保存为.pdf或.eps时的别名

标签 pdf matplotlib eps

我正在使用matplotlib.pyplot.contourf()函数生成场轮廓图。该函数调用中的参数为:

contourf(xvec,xvec,w,levels,cmap=matplotlib.cm.jet)

在哪里
xvec = numpy.linspace(-3.,3.,50)
levels = numpy.linspace(-0.01,0.25,100)

w是我的数据。

生成的图在屏幕上看起来相当不错,但是当我使用对matplotlib.pyplot.savefig()的调用将其保存为pdf时,生成的pdf发生了很多混叠现象(我想就是这样)。对savefig的调用只是savefig('filename.pdf')。我尝试使用dpi参数,但是没有运气。调用matplotlib.get_backend()会弹出“TkAgg”。

我将附加一个另存为pdf的图形,与一个另存为png的图形(类似于屏幕上的外观)进行比较,以演示该问题:

png别名混叠:https://dl.dropbox.com/u/6042643/wigner_g0.17.png

带有别名的pdf:https://dl.dropbox.com/u/6042643/wigner_g0.17.pdf

请让我知道是否有其他我可以提供的详细信息,以帮助您给出答案。我应该提到,另存为.eps会产生与保存为pdf相似的不良结果。但是pdf文件更清楚地显示了问题。我的目标是最终获得生产质量的.eps文件,我可以将其附加到 latex 文档上,以科学论文的形式发表。如果我能找到一种令人满意的结果的方式,我会对围绕一种格式保存的工作感到满意,然后将其转换。

最好的,

Arne

最佳答案

在使用@pelson的有用答案一段时间后,我终于找到了解决这个长期存在的问题(当前在Matplotlib 2.0中使用)的适当方法,该问题不需要多次调用即可对图形进行轮廓化或栅格化。

我可以引用原始答案here以获得更广泛的解释和示例。

总而言之,该解决方案由以下几行组成:

cnt = plt.contourf(x, y, z)

for c in cnt.collections:
    c.set_edgecolor("face")

plt.savefig('test.pdf')

关于pdf - 将matplotlib填充轮廓图保存为.pdf或.eps时的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822159/

相关文章:

javascript - 为什么我的计算总计在 Acrobat 中无法正确更新?

pdf - 如何创建 PDF-out-of-Sphinx 文档工具

perl - 如何修复损坏的/'nonconformance to standards' PDF

image - MATLAB - 将图像写入 eps 文件

python - 导出 .eps 文件时在 Matplotlib 中转换文本

transparency - RMagick:将 CMYK EPS 转换为 RGB PNG 保持透明背景

java - 如何同时进行pdf书写和复印?

python - 在 `matplotlib` 、 `scatter` 中,当参数 `s` <1 时,圆圈变空,为什么会发生这种情况?

python - Matplotlib 图放置

python - 如何沿 x 轴移动图形?