データアナリストくんのblog

データアナリストとして働いている人がちょっと調べる内容をまとめるブログ

matplotlibで2軸plotをするテンプレート

2軸でデータを可視化したい際によく忘れてしまうのでメモ的に。
テンプレートでは.plotと折れ線グラフになっているが、ここは.barにすれば棒グラフになります。

import matplotlib.pyplot as plt
%matplotlib inline

fig = plt.figure(figsize=(10, 5))
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
ax1.plot(x1)
ax2.plot(x2)
h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
ax1.legend(h1+h2, l1+l2)
ax1.set_xlabel('x labels')
ax1.set_ylabel('ax1 y labels')
ax2.set_ylabel('ax2 ylabels')
ax1.grid(True) # gridなしの場合は書かなくてok
ax1.set_xticklabels(x_labels, rotation=90) # x軸の値に指定があればx_labels変数で指定、文字が長い場合はrotationで傾きを調整
plt.show()

matplotlib.pyplotのドキュメント