如何直接设置matplotlib图形背景颜色的alpha通道值[关闭]

问题描述 投票:0回答:1

我遇到了 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 混合,然后将 alpha 值重置为指定的原始值。

为什么会出现这种情况?

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

python matplotlib alpha
1个回答
3
投票

对我来说看起来像是一个错误。我已经提交了一个拉取请求来修复它;它在 v1.3+ 版本中已修复 https://github.com/matplotlib/matplotlib/pull/1868

© www.soinside.com 2019 - 2024. All rights reserved.