はじめに
前回に引き続きseabornで描画をしていきます。今回は、カテゴリごとに散布図比較する際に、威力を発揮する方法をご紹介します。seabornを使うと明示的にサブプロットを作成しなくても、引数の設定をするだけで、簡単にカテゴリごとに並べてプロットすることができます。
サンプルデータの準備
今回も前回と同じデータを扱います。 seabornに準備されている学習用のデータセットであるtipsデータセットを用意しましょう。
tips=sns.load_dataset('tips')
tips.head()
データセットについて、各項目の意味が解説されているものがないか探してみたのですが、見つけることができませんでした。ただ、大体類推できますね。わかりにくいものは、どんな値を取るのか、少しデータをみてみました。
- total_bill:総支払額
- tip:チップの額
- sex:性別
- smoker:喫煙者か否か
- day:曜日(木・金・土・日)
- time:レストランを利用した時間帯(Lunch/Dinnerの2種類しかない)
- size:これはよくわかりませんでしたが1~6までの整数値をとるようです
カテゴリごとに散布図を並べる
前回、横軸をtotal_bill、縦軸をtipsとして、sexで色分けしたグラフを描きました。今回はさらにカテゴリ変数であるtimeによって散布図をわけてプロットしてみましょう。
sns.set()
sns.relplot('total_bill','tip',data=tips,hue='sex',col='time')
どうでしょうか?引数colにカテゴリ変数であるtimeを指定下だけで、このようにカテゴリでわけた散布図を簡単に作成できます。さて、大体予想がつくとは思いますが、colではなくrowという引数を使うと、グラフを縦に並べて比較することができます。
sns.relplot('total_bill','tip',data=tips,hue='sex',row='time',height=3, aspect=3)
まとめ
いかがでしょうか?こんなに簡単にグラフを並べたプロットができると、これまで、頑張ってsubplotsしてたのはなんだったんだろう?って気にもなりますね。seabornは「簡単に」きれいなグラフが描けて、比較がしやすくなっています。積極的に使っていきましょう。
コメント