使用matplotlib和alpha值导出数字

时间:2014-08-13 11:56:54

标签: python matplotlib

我正在使用下面的代码绘制两个相交的透明直方图。当我看到在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

1 个答案:

答案 0 :(得分:1)

您可以在保存之前栅格化图形以保持eps文件中的透明度:

ax.set_rasterized(True)
plt.savefig('rasterized_fig.eps')

更多可能的解决方案请看: Matplotlib Plots Lose Transparency When Saving as .ps/.eps