2

我遇到了 matplotlib 的问题。使用这些信息,我可以设置人物脸部的颜色和 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 值重置为指定的原始值。

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

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

4

1 回答 1

3

对我来说似乎是一个错误。我已经提交了 PR 来修复它。如果可以的话,如果您可以尝试一下,那将非常有价值:https ://github.com/matplotlib/matplotlib/pull/1868

高温高压

于 2013-03-29T11:30:23.310 回答