我正在使用下面的代码绘制两个相交的透明直方图。当我看到在iPython中运行代码时弹出的图形时,一切看起来都像预期的那样。 当我以png格式导出这个数字时,一切都很好,但是当我以eps格式导出它时,透明度消失了,我看不到直方图的交叉部分。我想以eps格式导出这个透明度。任何建议将不胜感激。
import numpy
from matplotlib import pyplot as plt
d1 = numpy.random.normal(-0.2, 0.25, 5000)
d2 = numpy.random.normal(0.2, 0.25, 5000)
bins = numpy.linspace(-1,1,30)
fig = plt.figure(1,figsize=(30.0, 15.0))
plt.ion()
plt.hist(d1, bins, alpha=0.5, normed=1)
plt.hist(d2, bins, alpha=0.5, normed=1)
plt.show()
plt.savefig('myfig.eps') # <-- loses transparency
plt.savefig('myfig.png') # <-- preserves transparency
答案 0 :(得分:1)
您可以在保存之前栅格化图形以保持eps文件中的透明度:
ax.set_rasterized(True)
plt.savefig('rasterized_fig.eps')
更多可能的解决方案请看: Matplotlib Plots Lose Transparency When Saving as .ps/.eps