matplotlibで棒グラフの色に透明色を指定する方法には、色指定でrgbaのaに透明度を指定するか、alpha引数をセットする方法があります。
rgbaのaに透明度を指定する
alpha = 0が透明で、alpha=1が不透明(デフォルト)です。0~1の範囲で指定します。
- color = (1, 0, 0, 0.5) #(r, g, b, a)で a=0.5
import numpy as np
import matplotlib.pyplot as plt
X = np.arange(10)
Y = np.random.uniform(1, 10, 10)
Y2 = np.random.uniform(1, 10, 10)
color = (1, 0, 0, 0.5) #rgbaで a=0.5
color2 = (0, 1, 0, 0.5)
width = 0.4
shift = 0.2
fig, ax = plt.subplots()
ax.bar(X, Y, width, color=color)
ax.bar(X+shift, Y2, width, color=color2)
fig.show()
alpha引数をセットする
Axes.bar()にalpha引数を渡す方法です。alpha = 0が透明で、alpha=1が不透明(デフォルト)で、0~1で指定します。
- Axes.bar(x, height, alpha=alpha)
import numpy as np
import matplotlib.pyplot as plt
X = np.arange(10)
Y = np.random.uniform(1, 10, 10)
Y2 = np.random.uniform(1, 10, 10)
width = 0.4
shift = 0.2
fig, ax = plt.subplots()
ax.bar(X, Y, width, alpha=0.4)
ax.bar(X+shift, Y2, width, alpha=0.4)
fig.show()
プロット後に変更する
Axes.bar()は、patches.Rectangleのリストを返します。
Rectangleの set_alpha()や set_color()関数を使うことで、プロット後に色を変更することができます。
- rects[i].set_color(‘#aa000088’)
- rects[i].set_alpha(0.5)
次の例では、0~4番目の棒に対して、プロット後に透過色を変更しています。
import numpy as np
import matplotlib.pyplot as plt
X = np.arange(10)
Y = np.random.uniform(1, 10, 10)
Y2 = np.random.uniform(1, 10, 10)
width = 0.4
shift = 0.2
fig, ax = plt.subplots()
rects = ax.bar(X, Y, width)
rects2 = ax.bar(X+shift, Y2, width)
for i in range(5):
rects[i].set_alpha(0.5)
#rects[i].set_color('#aa000088')
rects2[i].set_alpha(0.5)
fig.show()