【Python】matplotlibで棒グラフの後ろにグリッド線を引く方法

こんにちは、にわこまです。
今回は、matplotlibでグラフを描画するときに、グリッド線をグラフの後ろに引く方法を紹介します。グリッド線を引こうとすると、グラフの前に引かれてしまい少し見にくくなります。そんな問題を解決します。
誤字脱字や分からない点がございましたらご連絡お願いいたします。
スポンサードサーチ
グリッド線を後ろに引く方法
「ax.set_axisbelow(True)」を「ax.grid()」の前に書く
ax.set_axisbelowをTrueにすることで、グリッド線をグラフの後ろに引くことができます。
問題状況
まず、グリッド線をそのまま引くソースコードを以下に示します。
import matplotlib.pyplot as plt
def makeGraph(x, y):
ax = plt.axes()
ax.grid(b=True, which="major", color="#ababab", linestyle="-", axis="y")
ax.bar(x, y, width=0.5)
plt.show()
if __name__ == '__main__':
x = [1, 2, 3, 4, 5]
y = [1, 0, 3, 4, 2]
makeGraph(x, y)
上記のプログラムを実行すると以下のようなグラフが表示されます。

見て分かる通りグリッド線が棒グラフの前面にあります。
解決方法
以下にグリッド線をグラフの背面に表示するソースコードを示します。先ほどのソースコードを比べると6行目の「ax.set_axisbelow(True)」が追加されています。
import matplotlib.pyplot as plt
def makeGraph(x, y):
ax = plt.axes()
ax.set_axisbelow(True)
ax.grid(b=True, which="major", color="#ababab", linestyle="-", axis="y")
ax.bar(x, y, width=0.5)
plt.show()
if __name__ == '__main__':
x = [1, 2, 3, 4, 5]
y = [1, 0, 3, 4, 2]
makeGraph(x, y)
上記のソースコードを実行すると以下のように表示されます。

見て分かる通り、グリッド線が棒グラフの後ろに引かれています。
まとめ

今回は、matplotlibでグラフの後ろにグリッド線を引く方法を紹介しました。改めていかに解決方法を示します。
「ax.set_axisbelow(True)」を「ax.grid()」の前に書く
他にmatplotlibで困っていることがありましたら、ご連絡お願いいたします。
最後までお読みいただきありがとうございます。
スポンサードサーチ