【超簡単】要約統計量を python でグラフ化しよう! (matplotlib編)

Python入門
この記事は約3分で読めます。

こちらの記事では要約統計量の取得方法について解説しました。

今回は、matplotlib を使って要約統計量をグラフ化する方法について解説します。

この記事で取り上げるのは、箱ひげ図(boxplot)、バィオリンプロット(violinplot)、ヒストグラム(histgram)になります。

要約統計量で使うグラフの種類

要約統計量で知りたいことはデータの分布なので、これを可視化することになります。

箱ひげ図、ヒストグラムは昔から使われてきましたが、最近ではバィオリンプロットも使われるようになりました。

それぞれの違いについて簡単にまとめておきます。

箱ひげ図 データの分布を5種類の統計量(最小値、第一四分位数、中央値、
第三四分位数、最大値)を使って表現したもの
バィオリンプロットデータの分布の密度を左右の幅で表現したもので、箱ひげ図と
(90度回転させて階級をなくした)ヒストグラムを合体したようなもの
ヒストグラム データの分布を決められた区間(階級)毎に集計し、棒グラフとして表現したもの

グラフ表示で使ったサンプルデータについて

サンプルデータは numpy による正規分布のランダムデータを使っています。

1次元データのグラフは data1 を、2次元(表形式)のグラフは DataFrameを使っています。

ランダムなので実行する度にグラフの形は変わりますが、だいたい以下のような感じです。

箱ひげ図をプロットする

箱ひげ図は boxplot を使います。

先ほどの折れ線グラフの plot() が bolplot() に代わっただけです。

実行結果は次のようになります。

ヒストグラムをプロットする

ヒストグラム は hist を使います。

先ほどの折れ線グラフの plot() が hist () に代わっただけです。

とりあえずデータを突っ込むだけで、階級は自動で決めてくれます。

実行結果は次の通りです。

複数のデータをプロットする場合、棒が重なって表示されます。

バィオリンプロットをプロットする

バィオリンプロットは violinplotを使います。

先ほどのヒストグラム の hist() が violinplot() に代わっただけです。

結果は次のようになります。

グラフにタイトルやデータ名を表示する

箱ひげ図やバィオリンプロットを単独で描画するだけなら特にこのままでよいかもしれませんが、一覧形式のデータをグラフ化する場合、データ名も表示したくなります。

そこで、グラフのタイトルやデータ名、グリッド線などを使って見た目を綺麗に整えてみました。

結果は以下の通りになります。

箱ひげ図は showmeans = True で平均値を▲マークで表示し、 showfliers=False により外れ値を非表示にしています。

まとめ

今回は統計量のグラフ化で良く使われている、箱ひげ図、ヒストグラム、バィオリンプロットについて、matplotlib を使ったグラフ表示の方法を解説しました。

pandas の DataFrame や numpy の ndarray に格納されているデータを簡単にグラフ化出来ますので、是非ご活用ください。

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