matplotlibの棒グラフを透過させてグリッドを付けたい

TAGS :

matplotlibの棒グラフの透過率を設定する

matplotlib の棒グラフを透過させてみましょう。
matplotlib の棒グラフのドキュメントは こちら です。

まずは、デモサイト を見ながら、棒グラフを描画します。

Python

import os
from datetime import datetime
import matplotlib.pyplot as plt

data = {'apple': 10, 'orange': 15, 'lemon': 5, 'lime': 20}
names = list(data.keys())
values = list(data.values())

fig, ax = plt.subplots(1, 1, figsize=(3.2, 2.4))
ax.bar(names, values)

filename = 'graph_bar_' + datetime.today().strftime('%Y%m%d') + '_a.png'
file_path = os.path.join(os.getcwd(), filename)
plt.savefig(file_path)

このような棒グラフが出力されます。
棒グラフ(alpha設定無し)

透過率は alpha で設定します。値は 0.0~1.0 の間で設定します。
alpha は値が小さいほど透過率が高くなります。なので、ブレンド率と言った方がいいのかもしれません。
alpha=0.8 よりも alpha=0.2 の方が、棒グラフの色が薄くなります。

Python

import os
from datetime import datetime
import matplotlib.pyplot as plt

data = {'apple': 10, 'orange': 15, 'lemon': 5, 'lime': 20}
names = list(data.keys())
values = list(data.values())

fig, ax = plt.subplots(1, 1, figsize=(3.2, 2.4))
ax.bar(names, values, alpha=0.8)

filename = 'graph_bar_' + datetime.today().strftime('%Y%m%d') + '_alpha08.png'
file_path = os.path.join(os.getcwd(), filename)
plt.savefig(file_path)

alpha=0.8 の場合は、こうなります。
棒グラフ(alpha=0.8)

alpha=0.2 の場合は、こうなります。
棒グラフ(alpha=0.8)

matplotlibの棒グラフにグリッド線を付ける

棒グラフを透過させると、グリッド線があったら、見た目がぐっと良くなりますよね。
グリッド線は、ax.grid() で付けることができます。
メジャーなパラメータは、axis/color/linestyle/linewidth あたりでしょうか。
ドキュメントを見ながら、いろいろお試しいただけたら、と思います。
matplotlib.pyplot.grid のドキュメントは こちら です。

あと、グリッド線は最背面に配置しておいた方がいいと思います。
ax.set_axisbelow(True) で最背面にできます。
グリッド線を最背面にできているか、がわかりにくい場合は、alpha=1.0 にして見るとわかります。
matplotlib.axes.Axes.set_axisbelow のドキュメントは こちら です。

Python

import os
from datetime import datetime
import matplotlib.pyplot as plt

data = {'apple': 10, 'orange': 15, 'lemon': 5, 'lime': 20}
names = list(data.keys())
values = list(data.values())

fig, ax = plt.subplots(1, 1, figsize=(3.2, 2.4))
ax.bar(names, values, alpha=0.5)

ax.set_axisbelow(True) # グリッドを最背面にする。
ax.grid(axis='both', color='red', linestyle='--')

filename = 'graph_bar_' + datetime.today().strftime('%Y%m%d') + '_grid_a.png'
file_path = os.path.join(os.getcwd(), filename)
plt.savefig(file_path)

ax.grid(axis='both', color='red', linestyle='- -') の場合は、こうなります。
棒グラフ(グリッド設定その1)

ax.grid(axis='y', color='gray', linestyle='-') の場合は、こうなります。
棒グラフ(グリッド設定その)