matlab 蜡烛图 颜色,Matplotlib图facecolor(背景颜色)

在Matplotlib中设置图形facecolor时遇到问题,代码中的rect.set_facecolor('red')无法在保存的图片中显示。原因是savefig()函数会覆盖图形的facecolor。解决方法包括在savefig()中指定facecolor参数或者全局设置plt.rcParams['axes.facecolor']和plt.rcParams['savefig.facecolor']。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matplotlib图facecolor(背景颜色)

有人可以解释为什么下面的代码在设置graphics的facecolor时不起作用吗?

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)指定graphics的高度和宽度时,这些命令由plt.savefig("trial_fig.png")命令plt.savefig("trial_fig.png") 。 但是,facecolor设置不拾起。 为什么?

谢谢你的帮助。

这是因为savefig覆盖了graphics背景的facecolor。

(这是故意的,实际上……假设你可能想用facecolor kwarg来控制保存graphics的背景颜色来保存图像,但这是一个令人困惑和不一致的默认值)

最简单的解决方法是做fig.savefig('whatever.png', facecolor=fig.get_facecolor(), edgecolor='none') (我在这里指定edgecolor,因为实际graphics的默认edgecolor是白色的,这将给你一个白色的边界,保存的数字周围)

希望有所帮助!

我不得不使用透明关键字来获得我select的颜色

fig=figure(facecolor='black')

喜欢这个:

savefig('figname.png', facecolor=fig.get_facecolor(), transparent=True)

savefig有自己的facecolor参数。 我认为比接受的答案更简单的方法是将其全局设置为一次 ,而不是每次都放置facecolor=fig.get_facecolor() 。

plt.rcParams['axes.facecolor']='red' plt.rcParams['savefig.facecolor']='red'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值