Matplotlib

【Python】matplotlibでヒストグラム作成(まとめ)

【Python】matplotlibでヒストグラム作成(まとめ)

 

本記事では、Pythonのmatplotlibというライブラリを利用して、ヒストグラムを作成する方法を紹介します。

カスタマイズ方法についても詳しく説明するので参考にしてください。

Pythonでグラフをプロットしたことがない方は先に下記を参考にしてから本記事を読んでください。

 

【15分】Pythonでグラフを作成する方法|matplotlibの基本をマスターPythonでグラフを書くことが難しそうだと思っていませんか?実は、Pythonを使用したグラフ作成は、excelより便利で簡単です。この記事では、初心者でもグラフが書けるように丁寧にpythonのグラフの作成法を説明します。...

 

 

ヒストグラムを作成する準備

 

ヒストグラムを作成するために、まずは以下のライブラリをインポートしてください。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

 

pandasは、サンプルデータを見やすくするために使用しました。

 

 

Pythonでヒストグラムを作成する方法

 

本記事では、matplotlibのAxes.hist()を利用してヒストグラムを作成していきます。

まずは、引数を簡単にまとめておきます。

引数 説明
bins ヒストグラムの柱の数(デフォルトは10本)
range 対象範囲を(float, float)で指定
density Trueにするとヒストグラムの面積が1になるように正規化される(具体例は後述)
cumulative Trueにするとグラフが累積分布になる
histtype

ヒストグラムの種類

  • 'bar' : 通常のヒストグラム, 複数データが渡されたら横に並べて表示
  • 'barstacked' : 複数データがあるとき、積み上げてデータを表示
  • 'step' : 折れ線グラフのように表示
  • 'stepfilled' : 折れ線グラフのように表示(塗りつぶし)
align

柱の位置

  • 'mid' : 中心
  • 'left' : 左側
  • 'right' : 右側
orientation

ヒストグラムの向き

  • 'vertical' : 縦向き
  • 'horizontal' : 横向き
color 柱の色(リストで指定可)
label ラベル(リストで指定可)
facecolor(fc) 柱の色(リストで指定不可)
alpha 透明度を0〜1で指定
linewidth(lw) 柱の縁の太さ
edgecolor(ec) 柱の縁の色

 

この段階で全ての引数を覚える必要はありません。

このあと主要なものは具体例を使って説明するので安心してください!!

 

また、Axes.hist()には以下の三つの戻り値があります。

  1. 第一返り値 : 各階級の度数(各柱の高さ)
  2. 第二返り値 : 各階級の区間
  3. 第三返り値 : Patchオブジェクトのリスト

 

今回、使用するサンプルデータを作成しましょう。

df = pd.DataFrame(data=np.random.randn(100, 3), columns=['A', 'B', 'C'])
df.head()

 

サンプルデータ最初の5行まで表示

 

 

簡単なヒストグラムを作ってみる

 

まずは、最もシンプルなヒストグラムを作成してみましょう。

fig, ax = plt.subplots()
ax.hist(df['A'])
plt.show()

 

シンプルなヒストグラムの例

 

ヒストグラムをカスタマイズしてみよう

 

次に、引数を指定してヒストグラムをカスタマイズしてみましょう。

fig, ax = plt.subplots()
ax.hist(df['A'], bins=20, range=(-2.0, 2.0), density=True, align='left', 
        fc='r', lw=1.0, ec='k', alpha=0.5)
plt.show()

 

ヒストグラムのカスタマイズ例

次は、複数のデータをヒストグラムで表示する方法を紹介していきます。

 

 

複数のデータをヒストグラムで表示する

 

ここからは、複数のデータをヒストグラムに表示する方法を紹介していきます。

 

横に並べて複数のデータをヒストグラムで表示する

 

横に並べて複数のデータをヒストグラムで表示する例を紹介します。

 

fig, ax = plt.subplots()
ax.hist([df['A'], df['B']], bins=20, label=['A', 'B'], color=['r', 'b'])
ax.legend()
plt.show()

 

複数のデータを横に並べて表示した例

 

縦に積み重ねて複数のデータをヒストグラムで表示する

 

縦に積み重ねて複数のデータをヒストグラムで表示する際は、引数histtype='barstacke'と設定しましょう。

 

fig, ax = plt.subplots()
ax.hist([df['A'], df['B']], bins=20, label=['A', 'B'], color=['r', 'b'], histtype='barstacked')
ax.legend()
plt.show()

 

複数のデータを積み重ねて表示した例

 

まとめ

 

本記事では、pythonのmatplotlibを利用してヒストグラムを作成する方法を紹介しました。

基本的には、本記事で紹介したカスタマイズ方法を利用して所望のヒストグラムが作成できると思います。

ぜひ、本記事を参考にしてデータ解析・研究に生かしてください。

 

Pythonによる可視化方法をより詳しく知りたい方は下記を参考にしてください。

Python Lab

ABOUT ME
努力のガリレオ
【運営者】 : 東大で理論物理を研究中(経歴)東京大学, TOEIC950点, NASA留学, カナダ滞在経験有り, 最優秀塾講師賞, オンライン英会話講師試験合格, ブログと独自コンテンツで収益6桁達成 【編集者】: イングリッシュアドバイザーとして勤務中(経歴)中学校教諭一種免許取得[英語],カナダ留学経験あり, TOEIC650点
Python学習を効率化させるサービス

 

Pythonを学習するのに効率的なサービスを紹介していきます。

まず最初におすすめするのは、Udemyです。

Udemyは、Pythonに特化した授業がたくさんあり、どの授業も良質です。

また、セール中は1500円定義で利用することができ、コスパも最強です。

下記の記事では、実際に私が15個以上の講義を受講して特におすすめだった講義を紹介しています。

 

【最新】UdemyでおすすめのPythonコース|東大生が厳選!10万を超える講座があるUdemyの中で、Pythonに関係する講座を厳選しました。また、本記事では、Udemyを使用しながらPythonをどのような順番で勉強するべきかを紹介しました。ぜひ参考にしてください。...

 

他のPythonに特化したオンライン・オフラインスクールも下記の記事でまとめています。

 

【最新】Pythonに強いプログラミングスクール7選|東大生が厳選Pythonの流行と共に、Pythonに強いプログラミングスクールが増えてきました。本記事では、特にPythonを効率的に学ぶことができるプログラミングスクールを経験をもとに厳選して、内容を詳しく解説しています。...

 

自分の学習スタイルに合わせて最適なものを選びましょう。