Matplotlib灰色图形背景保存为.eps格式时变为黑色问题求解
问题原因
- EPS格式本身不支持透明通道,matplotlib的EPS导出后端默认会将透明区域渲染为黑色。你仅设置了坐标轴
ax的背景色为灰色,未显式指定导出时的画布背景参数,导出时背景的alpha值被默认设为0,就会出现原本的灰色背景变成黑色的问题。 - 现有代码先调用
fig.show()再执行保存操作,部分版本的matplotlib在GUI渲染预览后,会丢失部分画布配置参数,也可能触发该问题。
解决方法
按如下规则调整代码即可:
- 将保存操作放到
fig.show()之前,避免预览重置画布参数 - 保存时显式指定背景色参数,关闭透明选项
修改后的保存代码片段:
# 可先显式设置整张画布的背景色为白色,避免外围区域出现异常 fig.set_facecolor('white') # 先执行保存再预览 plt.savefig("drive/My Drive/fig.eps", facecolor=fig.get_facecolor(), edgecolor='none', transparent=False) fig.show()
如果调整后问题仍然存在,可以在设置坐标轴背景色时显式指定alpha值为1:ax.set_facecolor((0.5, 0.5, 0.5, 1))
内容的提问来源于stack exchange,提问作者nalfahel
相关产品推荐
相关产品推荐

