Matplotlib图形面颜色(背景色)

有人能解释一下为什么下面的代码在设置图形的facecolor时不起作用吗

将matplotlib.pyplot导入为plt
#创建地物实例
图1=plt.图(1)
图1.集合灯(11)
图1.设置图宽(8.5)
rect=fig1.patch
rect.set_facecolor('red')#与plt.show()配合使用。
#不适用于plt.savefig(“试用图png”)
ax=图1.添加子批次(1,1,1)
x=1,2,3
y=1,4,9
轴图(x,y)
#plt.show()#将使用rect.set_facecolor('red')显示上面设置的红色人脸颜色
plt.savefig(“trial_fig.png”)#保存的trial_fig.png没有红色面颜色。
#plt.savefig(“trial_fig.png”,facecolor='red')#这里facecolor是红色的。

当我使用fig1.set\u figheight(11)fig1.set\u figwidth(8.5)指定图形的高度和宽度时,这些都由命令plt.savefig(“试用图.png”)拾取。但是,不会拾取facecolor设置。为什么?

谢谢你的帮助

这是因为savefig覆盖了图形背景的面部颜色

(实际上,这是故意的……假设您可能希望使用facecolorkwarg tosavefig来控制已保存图形的背景色。不过,这是一个令人困惑且不一致的默认设置!)

最简单的解决方法就是执行fig.savefig('whatever.png',facecolor=fig.get_facecolor(),edgecolor='none')(我在这里指定edgecolor,因为实际地物的默认edgecolor为白色,这将在保存的地物周围提供白色边框)

希望有帮助

发表评论