如何直接为matplotlib图背景颜色设置alpha通道值

时间:2013-03-28 20:13:36

标签: python matplotlib alpha

我遇到了matplotlib的问题。使用this information,我可以为图形的脸部设置颜色和alpha值。但是,matplotlib似乎坚持在渲染输出之前将其与白色隐式混合。

例如,使用以下内容:

import matplotlib.pyplot as plt

fig = plt.figure()
fig.set_facecolor('black')
fig.patch.set_alpha(0.3)
ax = fig.add_subplot(111, axis_bgcolor='black')

ax.plot([1, 2, 3], [1, 2, 3], color='white')

fig.savefig('test_fig.png', facecolor=fig.get_facecolor(), edgecolor='none')

test_fig.png中的数字背景像素的RGBA值为(178, 178, 178, 77),而不是预期的(0,0,0,77)。我尝试过各种各样的颜色 - 在所有情况下,最终输出似乎等于指定的颜色+ alpha与不透明白色进行alpha混合,然后将alpha值重置为指定的原始值。

为什么会这样?是否有一些我错过的颜色仍然设置为白色,或者这是matplotlib的错误?

编辑:事实上,这是matplotlib中的一个错误,并且已经修复,并且应该在1.3及更高版本中出现。

1 个答案:

答案 0 :(得分:3)

对我来说看起来像个错误。我已经提交了PR来解决它。如果你能够,那么如果你能尝试一下它会非常有价值:https://github.com/matplotlib/matplotlib/pull/1868

HTH