【Matplotlib】matplotlob.pyplot.histの引数一覧

Python

【はじめに】

今回は、Matplotlibのmatplotlib.pyplot.histメソッドの引数を一覧にしました。

また、実際に引数を使用して基本的な散布図の作成方法も紹介します。

使う機会の多いグラフの一つだと思うので、この機会にマスターしていきましょう。

本記事の内容

  • matplotlob.pyplot.histの引数一覧
  • 基本的なヒストグラムを作成する
  • 棒の位置・方向に関する設定
  • 積み上げヒストグラムを作成する

【matplotlib.pyplot.histの引数一覧】

matplotlib.pyplot.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, *, data=None, **kwargs)
引数 指定する値
x (必須) ヒストグラムを作成するためのデータの配列
bins ビン (表示する棒) の数。階級数。(デフォルト値: 10)
range ビンの最小値と最大値を指定。(デフォルト値: (x.min(), x.max()))
density True に設定すると合計値が 1 になるように正規化する。 (デフォルト値: False)
cumulative True に設定すると、累積ヒストグラムを出力。 (デフォルト値: False)
bottom 各棒の下側の余白を数値または配列で指定。
histtype ‘bar’ (通常のヒストグラム), ‘barstacked’ (積み上げヒストグラム), ‘step’ (線), ‘stepfilled’ (塗りつぶしありの線) から選択。 (デフォルト値: ‘bar’)
align 各棒の中心を X 軸目盛上のどの横位置で出力するか。 ‘left’, ‘mid’, ‘right’ から選択。(デフォルト値: ‘mid’)
orientation 棒の方向。’horizontal’ (水平方向), ‘vertical’ (垂直方向) から選択。(デフォルト値: ‘vertical’)
rwidth 各棒の幅を数値または、配列で指定。
log True に設定すると、縦軸を対数目盛で表示します。
color ヒストグラムの色。配列で指定し、データセット単位で色を指定することができます。
label 凡例を載せる際に使用します。
stacked True に設定すると積み上げヒストグラムで出力します。False に設定すると、横に並べて出力します。

【基本的なヒストグラムを作成する】

使用するデータは、「統計科学研究所」のWebサイトの統計データの中から、「教科の成績データ」を使用します。

データは次のコマンドでダウンロードすることが出来ます。

$ curl https://statistics.co.jp/reference/statistical_data/seiseki.csv -O
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
%matplotlib inline

df = pd.read_csv('data3.csv', encoding='shift-jis')
print(f'データ数:{len(df)}')
df.head()
データ数:166
 国語社会数学理科音楽美術体育技科英語
0304351636066374420
1392149567072566316
229302357697633546
39587771007782789687
4707178677282466344

必須の引数のみでヒストグラムを作成する | x

国語の点数を引数xに指定してヒストグラムを作成してみます。

x = df['国語']
x.head()
0    30
1    39
2    29
3    95
4    70
Name: 国語, dtype: int64
plt.hist(x)

Image from Gyazo

棒の数を指定する | bins

引数binsに20を指定してヒストグラムを作成します。

plt.hist(x, bins=20)

Image from Gyazo

棒の最小値と最大値を指定する | range

最小値を50、最大値を100を指定してみます。

plt.hist(x, range=(50, 100))

Image from Gyazo

正規化 (合計すると1になるよう調整)してヒストグラムを作成する | density

plt.hist(x, bins=20, density=True)

Image from Gyazo

累積値を出力する | cumulative

引数cumulativeTrueを指定すると、累積ヒストグラムを作成出来ます。

plt.hist(x, bins=20, cumulative=True)

Image from Gyazo

縦軸を対数目盛で表示する | log

引数`cumulative`に`True`を指定すると、対数目盛でヒストグラムを作成出来ます。

plt.hist(x, log=True)

Image from Gyazo

棒の幅を指定する | rwidth

帽の幅を0.8にして、ヒストグラムを作成してみます。

plt.hist(x, rwidth=0.8)

Image from Gyazo

棒の色を指定する | color

棒の色を赤にして、ヒストグラムを作成してみます。

plt.hist(x, color='red')

Image from Gyazo

塗りつぶしなしの線でヒストグラムを作成する | histtype

引数histtypestepを指定すると、塗りつぶしなしのヒストグラムをヒストグラムを作成出来ます。

plt.hist(x, histtype='step')

Image from Gyazo

【棒の位置・方向に関する設定】

各棒の位置を目盛上の左側(右側)に設定する | align

引数alignleft(right)を指定すると、棒の位置を変えることが出来ます。

plt.hist(x, align='left')

Image from Gyazo

plt.hist(x, align='right')

Image from Gyazo

棒の向きを横方向に出力 | orientation

引数orientationhorizontalを指定すると棒の向きを横方向にすることが出来ます。

plt.hist(x, orientation='horizontal')

Image from Gyazo

【積み上げヒストグラムを作成する】

複数のデータをまとめてヒストグラムを作成する場合、引数xにデータをリストで渡します。

国語と英語の点数を引数xにリストで指定してヒストグラムを作成してみます。

y = df['英語']
y.head()
0    20
1    16
2     6
3    87
4    44
Name: 英語, dtype: int64

引数histtypeで指定して作成する | histtype

引数histtypebarstackedを指定すると、積み上げヒストグラムを作成出来ます。

plt.hist([x,y], histtype='barstacked')

Image from Gyazo

引数stackedで指定して作成する | stacked

引数stackedTrueを指定すると、積み上げヒストグラムを作成出来ます。

plt.hist([x,y], stacked=True)

Image from Gyazo

積み上げヒストグラムの色を指定する | color

引数colorにリストで色を指定します。

plt.hist([x,y], stacked=True, color=['red', 'blue'])

Image from Gyazo

複数の棒を並べてヒストグラムを作成する

引数stackedFalseを指定すると、複数の棒を並べてヒストグラムを作成することが出来ます。

plt.hist([x,y], stacked=False)

Image from Gyazo

ポイント
引数stackedを使用しなくても、デフォルトで棒を並べてヒストグラムを作成出来ます。

凡例を表示する | label

# 引数labelに指定するレベルをリストで用意します。
labels = ['国語', '英語']

plt.hist([x,y], label=labels)

# 凡例を表示します。
plt.legend()

Image from Gyazo

【さいごに】

今回は、Matplotlibのmatplotlib.pyplot.histメソッドの引数を紹介しました。

どのデータをヒストグラムとして描画すれば良いのかは慣れが必要です。
連続変数はhist、離散変数はbarを使用すると覚えると良いでしょう。

また、使用したCSVファイルやJupyter NotebookはGitHubに公開しています。
Jupyter Notebookは下記コマンドでダウンロードできるので、自由に使って是非練習してみてください。

$ curl https://raw.githubusercontent.com/nakachan-ing/python-references/master/Matplotlib%26Seaborn/matplotlib.pyplot.histの引数.ipynb -O
python-references/Matplotlib&Seaborn at master · nakachan-ing/python-references
Contribute to nakachan-ing/python-references development by creating an account on GitHub.
matplotlib.pyplot.hist — Matplotlib 3.7.1 documentation

コメント

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