• 海外赴任時の車の売却はJCM

お気に入り一覧 お気に入り登録 お気に入り解除

【Jupyter Notebook】Matplotlibで2次元グラフを描こう【その4:ヒストグラム応用編】

カテゴリ タイ

それでは、今回は「【Jupyter Notebook】Matplotlibで2次元グラフを描こう【その3:ヒストグラム基礎編】」の続編として【その4:ヒストグラム応用編】として複数のグループの値を一つのヒストグラムに表示する方法と、近似曲線をヒストグラムに追加する方法を説明します。

Matplotlibの初心者の方は、Matplotlibで2次元グラフを描こう【その3:ヒストグラム基礎編】とこの記事にあるリンク先の記事に目を通していただけると、理解が早くできると思います。

複数のグループの値をヒストグラムに表示する。 histogram_05histogram_05

それでは、有名なsklearnのトイデータセットであるアヤメの花のサイズに関するデータセットを使って、ヒストグラムに複数のグループを表示する方法を説明していきます。複数グループの表示方法は、半透明にして重ねる方法、横に並べる方法、上に積み上げる方法の3つの方法を説明します。

sklearnのトイデータセットについては、ぼくの別記事、Python sklearnのデータセット【datasets】について(その1:トイデータセット)を参照してください。

まずは、アヤメの花のサイズに関するデータセットを使って、花の萼片(がくへん)(sepal)の長さに関するヒストグラムを作成します。取り敢えずは、アヤメの品種に関しては区別せず、150個のサンプル全てに関するヒストグラムの描写を復習を兼ねて行います。

histgram_a_01histgram_a_01 histgram_a_02histgram_a_02

それでは簡単に上記のコードを説明します。基本的にはヒストグラムの基礎編で説明した内容を理解されていれば、問題ないはずですが、一つだけ、pandasというライブラリーからDataFrameという機能を新しく使っています。このpandasについては、まだぼくのブログでは解説していないので、ネットで調べていただきたいのですが、(すいません。)この機能は、pandasというよりは、Pythonの機能としてかなり重要ですので、ゆくゆくは記事にしたいと思っています。これでは、以下でここのコードを解説します。

ライン1:matplotlib.pyplotをpltとして呼び込む。 ライン2:マジックコマンドにてコードの後にブラフを表示させる。 ライン3:グラフのスタイルを指定。(目盛線を書かせる。) ライン5:アヤメのデータセットを読み込む。 ライン6:読み込んだデータセットを"s_l"に代入。 ライン8:pandasをpdとして呼び込む。 ライン9:pd.DataFrameクラスを使ってiris.dataをiris_dfに代入。 ライン10:iris.dfから”sepal length (cm)"だけを取り出し、s_lに代入。

これ以降は、ヒストグラムの基礎編で解説した通りに単純にヒストグラムを描いているだけです。いかがでしょうか。それとライン15の縦線は、カーソルが写っているだけですので、無視して下さい。(ごめんなさい。)

複数のグループの値を重ねて表示する

それでは、本題の複数のグループの値を重ねて表示する方法の説明に入ります。

histgram_a_03histgram_a_03 histgram_a_04histgram_a_04

コードの解説は以下の通りです。

ライン1:numpyをnpとして読み込む。 ライン2〜11:上記の復習コードと同じ。 ライン13:iris.dataをリストに変換しlist_typeに代入。 ライン15:list_typeの0, 1, 2を本来のアヤメの品種名に置換。 ライン17:ライン15で作ったlist_typeを”type”という(列の)名前をつけて列としてiris_dfに追加。 ライン19:iris_dfの"type"列のユニークをtypesに代入。([1, 2, 3, 1, 5, 2, 3]のユニーク値は[1, 2, 3, 5]) ライン22,23:上記の復習コードと同じ。 ライン25:ヒストグラムの表示位置を指定。(英語のarrangeではなくarangeなのでスペル注意。) ライン27:tの値をアヤメの品種に変えながら3回まわす。 ライン28:tと同じ品種のみのヒストグラくを描写。 ライン29:ヒストグラムを描く位置(x値)指定。 ライン30:ヒストグラムの幅指定。 ライン31:ヒストグラムの透明度指定。(重ねても、下のヒストグラムが見えるように。) ライン32:変数labelにtを代入。 ライン34:凡例を表示。 ライン35:横軸のラベルを指定。 ライン36:縦軸のラベルを指定。 ライン38:表を表示。
複数のグループの値を並べて表示する

複数のグループの値を横に並べて表示する方法をご説明いたします。

histogram_a_05histogram_a_05 histgram_a_06histgram_a_06

それでは、コードの解説を行います。

ライン1〜20:重ね表示のコードと同じ。 ライン22:データセットの並びをアヤメの品種別に3つのリストに分解。 ライン27〜31:アヤメの品種別の3つのリストをもとにヒストグラムを描写。 ライン33〜37:重ね表示のコードと同じ。
複数のグループの値を積み上げて表示する

それでは複数のグループの値を上に積み上げて表示する方法をご説明いたします。

histogram_a_07histogram_a_07 histgram_a_08histgram_a_08
ライン32:stackedパラメーターをTrueに設定。 ライン32以外:横に並べるコードと同じ。
ヒストグラムに近似曲線を追加する histogram_04histogram_04 histgram_a_09histgram_a_09 histgram_a_10histgram_a_10

それでは近似曲線に関するコードを解説していきます。

ライン13:花の萼片の最小ひをdfminに代入。 ライン14:花の萼片の最大値をdfmaxに代入。 ライン22:平均値と標準偏差をmuとsigmaに代入。 ライン24:x値を設定。 ライン26:y値を近似的な確率密度関数を使用して生成。 ライン28:近似曲線を描写。
まとめ histogram_02histogram_02

その1から今回のその4とMatplotlibを使っての2次元グラフの描写方法を説明してきました。一応このシリーズはこれで終了にします。今後はpandasに関する説明を予定しています。
それでは、最後までお付き合いありがとうございました。さようなら。

続きを読む

ブログ紹介

みゆきメダカのブログ

https://miyukimedaka.com

20年以上の東南アジアでの海外赴任の経験をもとに、これから海外赴任される方、されている方との有益な情報の共有できればと思っています。

カテゴリ タイ

このブログの最新記事

これで漏れ無し!海外赴任前の準備方法

チャートとチェックリストを使って、
海外赴任前の準備項目を確認しながら情報を収集して準備に備えましょう!

海外赴任準備チェックリストを確認する

書籍版のご案内

海外赴任ガイド 到着から帰国まで

書籍版「海外赴任ガイド」は各種ノウハウや一目で分かりやすい「海外赴任準備チャート」などをコンパクトな一冊にまとめております。海外赴任への不安解消に繋がる道しるべとしてご活用ください。

書籍版の詳細

プログライターの方

海外赴任ブログを登録する

あなたのブログを登録してみましょう!

プログライターの方

海外赴任ガイドのSNS

Twitter アカウントをみる

たいせつにしますプライバシー 10520045