IT業務効率化

Pythonで2軸のデータの目盛り・凡例・軸名のfontsizeを変更する

結論:コード

fig, ax1 = plt.subplots(figsize=(23, 10))
ax1.bar(df.index.values, df['rainfall'],
        align="center", color="royalblue", linewidth=0)
ax1.set_ylabel('rainfall(mm)', fontsize=20)
ax1.legend(['rainfll'], fontsize=20, loc=1)
ax2 = ax1.twinx()
ax2.plot(df.index.values, df['temperature'], linewidth=2, color="r")
ax2.set_ylabel('temperature(℃)', fontsize=20)
ax2.legend(["temperature(℃)"], fontsize=20, loc=2)

ax1.tick_params(axis='y', labelsize=22)
ax2.tick_params(axis='y', labelsize=22)
ax1.tick_params(axis='x', labelsize=22, labelrotation=60)

plt.show()

解説

fig, ax1 = plt.subplots(figsize=(23, 10))
ax1.bar(df.index.values, df['rainfall'],
        align="center", color="royalblue", linewidth=0)

# y軸の持つ意味を設定する、グラフの右側に表示される、fontsizeで文字の大きさを決める
ax1.set_ylabel('rainfall(mm)', fontsize=20)
# 凡例を決める。グラフの右上で青色の線を解説しており、その部分。
# ここもfontsizeで文字の大きさを決める
# loc=1でロケーションを1に設定しておくことで、このあと設定する2軸目のデータの凡例と場所を被らないようにする
ax1.legend(['rainfll'], fontsize=20, loc=1)

ax2 = ax1.twinx()
ax2.plot(df.index.values, df['temperature'], linewidth=2, color="r")
ax2.set_ylabel('temperature(℃)', fontsize=20)
# loc=2を指定することで、先に指定したデータと表示箇所をずらす
ax2.legend(["temperature(℃)"], fontsize=20, loc=2)

# 目盛りの文字の大きさを変更したい時はtick_paramsでlabelsizeを指定する
ax1.tick_params(axis='y', labelsize=22)
ax2.tick_params(axis='y', labelsize=22)
ax1.tick_params(axis='x', labelsize=22, labelrotation=60)

plt.show()

subplotを使ったあと、目盛りの大きさはfontsizeで変更する

ここが一番ハマりました。

tick_paramsのlabelsizeで指定でします。

https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html

使用したデータ

今回は気象庁の過去の天候データを利用した。

https://www.data.jma.go.jp/gmd/risk/obsdl/index.php

matplotlibで2種類のデータを1つのグラフに表示する結論:コード fig, ax1 = plt.subplots(figsize=(23, 10)) ax1.bar(df.index....
ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki