※このページではアフィリエイト広告を利用しています

【Python応用】Matplotlibを用いたヒストグラム作成方法-まとめ-

Python

ここでは「Matplotlib」を用いたヒストグラムを作成する方法について解説しています。

スポンサーリンク
スポンサーリンク

行ったこと

データはkaggleで配布されているtitanicのcsvファイルを使用しました。

内容としては年齢(Age)のヒストグラムになります。

基本的な型

Axes.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)

ヒストグラムを作成するには最低限の引数としては「Axes.hist(データ,プロットタイプ)」になります。

X入力データ(配列)
bins階級数(int),階級(list)。bins=’auto’に指定すると自動で設定される。
rangebinsの範囲を指定。「range=(x.min(),x.max())」
densityヒストグラムの面積を1にするもの。Trueで確率密度の描画になる。
weights既にbinnedされているヒストグラムを使用する場合に使用するもの。
cumulative累積値の設定。boolか-1に設定可能。
bottom各binの底の位置。array-like,scalar,Noneを指定できる。
histtype描画のタイプ設定。’bar’、 ‘barstacked’、 ‘step’、 ‘stepfilled’が選択可能。デフォルトではbar。
alignヒストグラムバーの水平方向の配置設定。left,mid,rightが選択可能。デフォルトではmid。
orientation方向の設定。vertical、horizontalの選択が可能。デフォルトではvertical
rwidthbinの幅を設定。数値はfloatで指定。デフォルトはNone(自動調節)。
log対数の設定。boolで設定可能。デフォルトではFalse
color色の設定。線の色が指定できる。
labelラベルの設定。
stackedデータの積み重ね設定。

ヒストグラム作成

デフォルトのヒストグラム(引数がデータだけ)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#1---csv読込み
df = pd.read_csv('titanic.csv')
#2---データをNumpyに入れる
data = np.array(df['Age'])
#3---matpltlibの宣言
fig = plt.figure()
#4---サブプロットの設定
ax = fig.add_subplot(1, 1, 1)
#5---ヒストグラムの作成
ax.hist(data)
plt.savefig("plot_titanic_age.png")

上記がプログラムになります。

5のヒストグラム作成部分に着目して下さい。引数はデータのみになります。

非常にシンプルなヒストグラムになりました。

グラフ内に線を引く

#5---ヒストグラムの作成
ax.hist(data,ec='black')

引数にecを追加するだけです。

階級数の設定

#5---ヒストグラムの作成
ax.hist(data,ec='black',bins=5)

デフォルトの階級数から変化していることが確認できます。

累積の設定

#5---ヒストグラムの作成
ax.hist(data,ec='black',cumulative=-1)

対数の設定

#5---ヒストグラムの作成
ax.hist(data,ec='black',log=True)

位置の設定

#5---ヒストグラムの作成
ax.hist(data,ec='black',align='right')

右寄りにしてみます。alignをrightに設定します。

色の変更

#5---ヒストグラムの作成
ax.hist(data,color='pink')

水平方向に変更

#5---ヒストグラムの作成
ax.hist(data,orientation="horizontal")

描画の設定

step

#5---ヒストグラムの作成
ax.hist(data,ec='black',histtype='step')

stepfilled

#5---ヒストグラムの作成
ax.hist(data,ec='black',histtype='stepfilled')

確率密度の設定

ヒストグラムの面積を1にする事も可能です。

5の部分に「density=True」を加えて以下のように変更してみます。

ax.hist(data, bins=10,density=True,histtype='barstacked', ec='black')

縦軸が変化していることが確認できます。

最後に

データの見せ方によって色々と設定する必要がありますね。

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