有人能解释一下为什么下面的代码在设置人物的面部颜色时不起作用吗?
import matplotlib.pyplot as plt
# create figure instance
fig1 = plt.figure(1)
fig1.set_figheight(11)
fig1.set_figwidth(8.5)
rect = fig1.patch
rect.set_facecolor('red') # works with plt.show().
# Does not work with plt.savefig("trial_fig.png")
ax = fig1.add_subplot(1,1,1)
x = 1, 2, 3
y = 1, 4, 9
ax.plot(x, y)
# plt.show() # Will show red face color set above using rect.set_facecolor('red')
plt.savefig("trial_fig.png") # The saved trial_fig.png DOES NOT have the red facecolor.
# plt.savefig("trial_fig.png", facecolor='red') # Here the facecolor is red.
当我使用fig1.set_figheight(11)
fig1.set_figwidth(8.5)
指定图形的高度和宽度时,命令plt.savefig("trial_fig.png")
会获取这些高度和宽度。但是,不会拾取面部颜色设置。为什么?
谢谢你的帮助。
发布于 2011-01-26 21:38:55
这是因为savefig
覆盖了图形背景的facecolor。
(这是故意的,实际上...假设您可能希望使用savefig
的facecolor
kwarg来控制保存的图形的背景颜色。然而,这是一个令人困惑且不一致的默认设置!)
最简单的解决方法是使用fig.savefig('whatever.png', facecolor=fig.get_facecolor(), edgecolor='none')
(我在这里指定边框颜色是因为实际图形的默认边框颜色是白色的,这将在保存的图形周围显示一个白色边框)
希望这能有所帮助!
发布于 2013-11-23 22:37:01
我不得不使用transparent关键字来获得我用我的初始颜色选择的颜色
fig=figure(facecolor='black')
如下所示:
savefig('figname.png', facecolor=fig.get_facecolor(), transparent=True)
https://stackoverflow.com/questions/4804005
复制相似问题