5分SHAREツイートシェアはてブLINEPocketこんにちは、データサイエンティストのたぬ(@tanuhack)です!Pythonでグラフを描画するときによく使われているライブラリとして『Matplotlib』が挙げられます。このMatplotlibは、多機能であるが故に設定が面倒だったり、美しいグラフが描けたとしても無駄にコードが長くなってしまったりと何かと問題が付きまとうと思いませんか?ヒストグラムで確認したいことと言えば、データの全体的な『ばらつき具合』を確認したいだけなのに、たかだかグラフの設定にそこまで時間を掛けられない...。さいごに準備まず、seabornをインストールします。seaborn次に、Pythonプログラムで必須ライブラリをインポートします。Notebook』内とします。inlineデータセットは、Rでお馴染みの『アヤメの統計データ』をPandasのDataFrameに格納させます。アヤメのデータセットは、seabornに予め用意されているのでそれを使います。ヒストグラムを表示seabornのdistplotメソッドでヒストグラムを描画します。等級値(x軸の刻み目)の数。plt.legend()必須。norm:正規分布の描画とりあえず、必須級のオプションはこれだけ。詳しくオプションを知りたい人は公式ライブラリ(英語)も合わせてどうぞ。スタージェスの公式で階級幅(bins)を最適化するヒストグラムは階級幅のとり方によって、同じデータから作成しても形状が変わることが知られています。ヒストグラムで実現したいことと言えば、サンプルデータの分布から、データの背景にある『真の分布』を知りたい、ということになります。この目的を達成するためには、描画するヒストグラムの適切な階級値を設定しなければいけません。9よってサンプル数150に対して、適切な階級数は9ということがわかりました。10カーネル密度推定(kde)を描画するseaborn.distplotメソッドのkdeオプションをTrueにすると、ヒストグラムに滑らかな線(いまあるデータから、全体の分布の推定)を上から重ねて描画します。(わかりやすいようにbinの値を極端に3にしています。kde=True)plt.legend()plt.show()kdeのグラフに対しても色やラベルを指定したい場合は、kde_kws={'color':'yellow','label':'kde'}のように記述します。fit}_kwsのようにグラフ自体に他のオプションを付与できます。正規分布を描画させるseaborn.distplotメソッドのfitオプションをnormにすると、正規分布を描くことができます。rug=False)plt.legend()plt.show()ヒストグラムをカテゴリ毎に描画する次に、irisデータには『品種(species)』の項目があるので、品種カテゴリごとにsepal_widthのヒストグラムを描写してみます。まとめて描画するアヤメの品種別の『sepal_width』を重ねず、それぞれ独立した状態でまとめてヒストグラムを描画させたい場合は、seabornのFacetGridメソッドを使います。kde=True)plt.show()seaborn.FacetGrid|公式ライブラリ(英語)各品種それぞれ、正規分布っぽい形をしていることが視認できますね。重ねて描画する次は、1つ1つのヒストグラムを独立させず、1つのグラフとして重ねたものになります。sns.distplot(x)sns.distplot(y)sns.distplot(z)こんな感じでdistplotメソッドを連続で使用します。label='virginica')plt.legend()plt.show()スマートにいきたければ、forループを使いましょう。plt.legend()plt.show()全ての列のヒストグラムを描画するさいごはseabornの機能ではありませんが、DataFrameのhist()を使って、各列ごとのヒストグラムを一気に描画出来る方法があるので、それを紹介します。irisデータは全部で5つ列がありますが、それぞれの列の値に1つでも質的データが含まれる場合、描画されません。今回はspecies以外の列が全てヒストグラムで描画される対象になるので、合計4つプロットされます。グラフ同士が重ならないようにするplt.show()DataFrameのqueryで条件指定するだけです。さいごに今回は、Pythonのseabornでヒストグラムを描画する方法を紹介しました。自分が確認するときは、ササッと手短に。:データ可視化この記事を書いた人たぬ効率沼ブロガールーチンワークを自動化で瞬殺することに人生の楽しさを見つけた効率沼ブロガーです。本業は「データ分析」と「作業の効率化」を生業としているデータアナリスト。PythonとGASに人生救われました。当ブログは、おかげさまで月間12万PV。2020年までに30万PV目指して頑張ってます。