2

matplotlib で問題が発生しました。この情報を使用して、人物の顔の色とアルファ値の両方を設定できます。ただし、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)。さまざまな色を試してみました - 最終的な出力は、すべての場合において、指定された色 + アルファが不透明な白とアルファブレンドされ、続いてアルファ値が指定された元の値にリセットされるのと同等のようです。

なぜこうなった?まだ白に設定されている行方不明の色のレイヤーがありますか、それともmatplotlibのバグですか?

編集: これは、実際には matplotlib のバグであり、修正が行われており、バージョン 1.3 以降に存在するはずです。

4

1 に答える 1

3

私にはバグのように見えます。私はそれを修正するために PR を提出しました。可能であれば、試してみることができれば非常に価値があります: https://github.com/matplotlib/matplotlib/pull/1868

HTH

于 2013-03-29T11:30:23.310 に答える