Python

Python初心者向け:グラフに凡例を表示する方法を基本から解説

スポンサーリンク


▶ 初めての方向けに可視化の方法を基本からまとめた記事もあります。

はじめに

前回は、作成したグラフの「グラフタイトル」や「軸タイトル」を設定する方法を学びました。

グラフを使うことデータの分布をみたり、「比較」をすることができます。今回はグラフ上に2つのプロットをしたときに、「比較」しやすいように凡例を表示する方法を紹介します。

サンプルデータの準備

今回も前回同様に、seabornに準備されている学習用のデータセットであるtipsデータセットを使うことにしましょう。

import seaborn as sns
tips=sns.load_dataset('tips')
tips.head()

凡例の表示設定

今回は、まず1つのグラフ領域に2つのプロットを描画してみましょう。1つのグラフ領域に2つのプロット描くのは簡単です。次のようにプロットの命令を続けて記述すると、同じグラフ領域に自動で2つのプロットが描画されます。

# グラフの描画
# 1つ目のプロット
plt.scatter(tips.query('sex=="Female"')['total_bill'],tips.query('sex=="Female"')['tip'])
# 2つ目のプロット
plt.scatter(tips.query('sex=="Male"')['total_bill'],tips.query('sex=="Male"')['tip'])

# グラフタイトル、軸タイトルの設定
plt.title('請求金額とチップの分布',fontsize=20)
plt.xlabel('請求金額')
plt.ylabel('チップの金額')

前回、学んだようにグラフタイトルと軸タイトルの設定もおこなっています。但し、せっかく性別により色分けしてプロットしても、この色が何を表しているのかがこのグラフではわかりません。そこで、凡例を表示することにしましょう。凡例の表示は次のように、プロットごとに表示したい文字列をlabelオプションに指定し、最後にplt.legend()で出力するようにします。

凡例の位置を変えるには、次のようにlegend()にlocオプションの指定して位置を決めることができます。

plt.scatter(tips.query('sex=="Female"')['total_bill'],tips.query('sex=="Female"')['tip'],label='女性')
plt.scatter(tips.query('sex=="Male"')['total_bill'],tips.query('sex=="Male"')['tip'],label='男性')

# グラフタイトル、軸タイトルの設定
plt.title('請求金額とチップの分布',fontsize=20)
plt.xlabel('請求金額')
plt.ylabel('チップの金額')

# 凡例の表示
plt.legend(loc='lower right')

このlocオプションには、次のような指定ができます。

  • 左上:upper left
  • 右上:upper right
  • 右下:lower right
  • 左下:lower left
スポンサーリンク

まとめ

いかがでしょうか?今回も簡単でしたね。matplotlibは、(私は)始めは、とっつきにくかったのですが、少しずつ順を追って学んでいけば決して難しくありません。ここまでで、とりあえずグラフを描いて、タイトルの設定、凡例の表示までできるようになりました。しっかり復習をしましょう。次回は、軸の表示範囲など、もっとデータをみやすくする設定を扱うことにします。

▶ グラフをわかりやすくするために目盛やその他のグラフ周りの設定をしましょう。

コメント

タイトルとURLをコピーしました