web-dev-qa-db-ja.com

Matplotlibでグラフの背景色の不透明度を設定する方法

Matplotlibをいじってみましたが、グラフの背景色を変更する方法や、背景を完全に透明にする方法がわかりません。

59
user179169

FigureとAxesの両方の背景全体を透明にしたい場合は、transparent=TrueでFigureを保存するときにfig.savefigを指定するだけです。

例えば。:

import matplotlib.pyplot as plt
fig = plt.figure()
plt.plot(range(10))
fig.savefig('temp.png', transparent=True)

よりきめ細かな制御が必要な場合は、FigureとAxesの背景パッチのフェースカラーやアルファ値を設定するだけです。 (パッチを完全に透明にするには、アルファを0に設定するか、facecolorを'none'(オブジェクトNone!ではなく文字列として)に設定します)

例えば。:

import matplotlib.pyplot as plt

fig = plt.figure()

fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.7)

ax = fig.add_subplot(111)

ax.plot(range(10))

ax.patch.set_facecolor('red')
ax.patch.set_alpha(0.5)

# If we don't specify the edgecolor and facecolor for the figure when
# saving with savefig, it will override the value we set earlier!
fig.savefig('temp.png', facecolor=fig.get_facecolor(), edgecolor='none')

plt.show()

alt text

99
Joe Kington