matplotlibでlabelが表示されない時には、plt.legend()を呼んでいるかを確認
よくありがちなのでここに残したいと思います。
matplotlibでlabelが表示されない時には、まずは、plt.legend()を呼んでいるかを確認すると良いかと思います。
plt.plot(x, y, label='value1')のようにlabelを設定しても、plt.legend()を呼ばないと表示されません。
下記がサンプルコードになります。
参考:リストをvalueにした辞書型データをmatplotlibでグラフ化する
$ cat sample.py
#!/usr/bin/env python3
# coding: UTF-8
import matplotlib.pyplot as plt
dic = {'x_val' : [3, 4, 5, 6, 7], 'y_val1' : [33, 42, 35, 76, 17], 'y_val2' : [23, 32, 15, 6, 7]}
plt.figure()
x = dic['x_val']
y = dic['y_val1']
plt.plot(x, y, label='value1')
y = dic['y_val2']
plt.plot(x, y, label='value2')
plt.legend()
plt.title('sample1')
plt.xlabel('month')
plt.ylabel('value')
plt.show()
下記が実行結果になります。
画面分割する場合は、画面毎にplt.legend()を呼んでいるかを確認
画面分割する場合は、画面毎にplt.legend()を呼ぶ必要があります。
参考:Pythonのpandasで画面分割して複数のグラフを表示
下記がサンプルコードになります。
$ cat sample2.py
#!/usr/bin/env python3
# coding: UTF-8
import matplotlib.pyplot as plt
dic = {'x_val' : [3, 4, 5, 6, 7], 'y_val1' : [33, 42, 35, 76, 17], 'y_val2' : [23, 32, 15, 6, 7]}
#3行 × 1列のグラフを設定
row = 2
col = 1
#1番目のグラフのプロット
plt.subplot(row, col, 1)
x = dic['x_val']
y = dic['y_val1']
plt.plot(x, y, label='value1')
plt.legend()
#2番目のグラフのプロット
plt.subplot(row, col, 2)
y = dic['y_val2']
plt.plot(x, y, label='value2')
plt.legend()
#グラフを表示
plt.show()
下記が実行結果になります。

