たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【Python Coding】seabornで棒グラフを作る方法を解説します

PR Pythonを学ぶ

こんにちは、TAKです。
前回に引き続き、今回もpythonのseabornを使った可視化について解説していきます。

今回は「Barplot」(棒グラフ)について、pythonのJupyter Notebookを用いて紹介していきます。
棒グラフはお馴染みのグラフなので、利用機会も多いですよね。

【こんな人に読んで欲しい記事です】
1. pythonを用いた可視化方法を学んでいきたい方
2. pythonを用いて「棒グラフ」を描けるようにしたい方

seabornを用いたデータ可視化 | Barplot

必要ライブラリのインポート

今回必要となるライブラリはお馴染みの上記3つです。
初回の記事で上記ライブラリの簡単な説明をしているので、今一つわからない方は以下の記事を参考にしてみてください。

利用データの確認

今回は、Kaggleでも公開されているデータを使用します。
データ内容は、2015年アメリカ航空会社の平均的な到着遅延時間(単位:分)を示したものです。

csvファイルの構成
● Month:1月から12月までの各月データ(2015年)
● 各カラム:アメリカ航空会社の略称表記名(計14社分)
下記にてデータ読込結果を表示しているので、そちらを参照してイメージを深めてみてください。

データの準備

では実際にpandasのread_csvを用いてデータセットとして読み込んでいきます。

csvファイルを読み込み、対象データすべてを表示させているのが以下のコードです。
今回は12ヶ月分のデータのみなので、全行表示させても一覧出来る程度の量となっています。

ここでのポイントは2つあります。

ポイント①:index_col引数を用いて、Month列を指定する点
ポイント②:(初回記事のように)parse_dates引数は指定する必要がない点
Monthは時間を表す要素ですが、今回は時系列データではなく、単なるカテゴリとして認識出来れば問題ないため、parse_dates引数は指定していません。

表示されたデータを見てみると、1月から12月までの各航空会社(略記)ごとの平均遅延時間がズラッと並んでいるのがわかりますね。所々マイナスがありますが、これは予定より早く到着したと解釈すれば問題ありません。

データ可視化①

では実際にseabornを使って棒グラフを描いていきましょう。

まずはカラム名をリストとして読み込んでおきます。
(これは僕の好みなので、別に必須処理ではありません。)

そして、各航空会社ごとの月別遅延時間を棒グラフで一気に描画したコードが下記となります。
(キャプチャの都合上、表示されているのは先頭の航空会社「AA」のみです。)

ここでのポイントは以下2つです。

sns.barplotを用いることで、棒グラフを描くことが出来る!
● 引数にはx軸とy軸、そして対象となるデータセットを指定する必要がある

グラフの結果をみてみると、キレイに棒グラフが描けていますね。
AAの結果からは、9月10月は早めに到着していますが、他の月は遅延気味と言えそうです。

全件表示させたコード結果が下記となります。

データ可視化②

棒グラフの可視化方法は基本的に以上のコードさえ理解出来れいればOKです。
ただ、個人的には「棒グラフを横向きに表示させたい」と思う時があるので、その方法も紹介しておきます。

棒グラフを横向き表示させるためには、一つ引数を追加するだけで完了です。
先ほどと同じようなコードですが、引数に違いがあることを確認してみてください。

ここでのポイントは以下2つです。

● 引数「orient」に「h(horizontalの意味)」を指定すれば、横向き表示になる
● 先ほどのコードと比べて、x軸とy軸の値を入れ替えてあげる必要がある

1つ目のポイントは、引数を追加するだけでいいので、指定方法を知っておけば大丈夫でしょう。
2つ目のポイントは、縦表示の棒グラフを横に倒したようなイメージなので、軸の入れ替えが必要と理解すれば良いかと思います。

グラフの結果をみてみると、キレイに棒グラフが横向きに表示出来ていますね。
0を基準として、右側が遅延、左側が早期到着を意味しているので、見やすくなっています。

全件表示させたコード結果が下記となります。

まとめ

いかがだったでしょうか?
今回は可視化手法の一つ「棒グラフ」について紹介してきました。

プレゼンに代表されるように、ビジネスの場面でもかなり使いやすいグラフのため、是非使えるようにしてみてくださいね。

では今回はこのへんで。