我通过以下方式解决了这个问题:
1)在定义图形区域时添加一个set_rasterization_zorder(1):
fxsize=16
fysize=8
f = figure(num=None, figsize=(fxsize, fysize), dpi=180, facecolor='w',
edgecolor='k')
plt.subplots_adjust(
left = (18/25.4)/fxsize,
bottom = (13/25.4)/fysize,
right = 1 - (8/25.4)/fxsize,
top = 1 - (8/25.4)/fysize)
subplots_adjust(hspace=0,wspace=0.1)
#f.suptitle('An overall title', size=20)
gs0 = gridspec.GridSpec(1, 2)
gs11 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec=gs0[0])
ax110 = plt.Subplot(f, gs11[0,0])
f.add_subplot(ax110)
ax110.set_rasterization_zorder(1)
2) 图中每个 alpha=anynumber 中的 zorder=0:
ax110.scatter(xs1,ys1 , marker='o', color='gray' , s=1.5,zorder=0,alpha=0.3)#, label=label_bg)
和
3)最后一个 rasterized=True 保存时:
P.savefig(str(PLOTFILENAME)+'.eps', rasterized=True)
请注意,使用 transparent 关键字到 savefig 时,这可能无法正常工作,因为透明背景上 alpha