【pythonでヒストグラムを描いてみよう!】matplotlibの使い方

今日はグラフの一種であるヒストグラムについて解説致します。

「ヒストグラムって何?」
「pythonでどうやってヒストグラムを作るの?」
「pngファイルに出力とかできないかな…?」

といった疑問をお持ちの方へ向けて、

【基礎】ヒストグラムとは
【応用】pythonでヒストグラムを描く方法
【応用】ヒストグラムをpngファイルに出力する方法

を紹介致します。

これから初めてpythonでグラフ作成をしてみる方へ向けて書かせていただきましたので、スタートを切りたい方はぜひお付き合いください!

なお、本記事はヒストグラムについてのみ記載されています。

もし他のグラフが描きたいという方は、こちらの記事を参考にしてください。

【Python入門】すぐわかる!matplotlibライブラリの使い方
更新日:2024年5月6日

それぞれのグラフを描く為の関数が簡潔に紹介されています。

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

ヒストグラムとは

まずはじめにヒストグラムについてご存知でしょうか?

ヒストグラムとは、以下のような特徴を持ったグラフです。

  • 横軸は階級
  • 縦軸はデータの度数
    • ある階級にどれだけデータが含まれているか
  • 各階級に対するデータの度合いを四角い棒で表す

一言で表すと、「データの度数分布をグラフにしたもの」です。

言葉では少々わかりにくいので、実際のヒストグラムを見てみましょう。

こちらは40人に行ったテストの結果をヒストグラムにした図です。

こうすると平均点だけでは把握できない、理解度の差なども分かってきますよね。

このように、分布を把握するのに適しているグラフがヒストグラムです。

以降ではpythonでヒストグラムを描く方法について紹介していきます。

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

まずはじめに、pythonでヒストグラムを作成するのに必要な準備から始めましょう。

pythonでグラフを描画するには、matplotlibをインポートする必要があります。

matplotlibはグラフを描画するのに必要な機能をまとめたものです。

こちらは標準ライブラリには無い為、インストールしてくる必要があります。

以下のコマンドを実行し、matplotlibをインストールしましょう。

$ pip install matplotlib

これで準備は完了です。

もしpipでインストールをする方法について詳しくわからない方は、以下を参照してみてください。

pipとは何かという所から、pipの使い方までが紹介されています。

ヒストグラムの作り方

それでは、実際にヒストグラムを作成してみましょう!

実は先ほどの図ですが、これは実際にmatplotlibを使いpython上で作ったものです。

その際のコードをご確認ください。

import matplotlib.pyplot as plt

x = [30, 36, 40, 44, 50, 58, 60, 61, 63, 65, 66, 68, 72, 75, 75, 78, 70, 80, 84, 90, 93,
      32, 39, 41, 42, 51, 53, 61, 64, 66, 67, 68, 69, 73, 74, 78, 79, 80, 81, 90, 22, 84,]

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

ax.hist(x, bins=10)
ax.set_title('test histogram')
ax.set_xlabel('Score')
ax.set_ylabel('Num of Poeple')
fig.show()

上記のようにして、ヒストグラムが作成されています。

ポイントは以下になります。
1. 先ほどインストールしたmatplotlibをインポートする
2. fig = plt.figure()の行で図を作成
3. ax = fig.add_subplot(1,1,1)でグラフの配置を指定
4. hist()でヒストグラムを作成する

1, 2はおまじない、2は単独のヒストグラムを作成するなら引数はadd_subplot(1,1,1)で問題ないと覚えましょう。

肝心のhist()では、得点のリストとbin(グラフの棒の数)を渡しています。

その他にも様々な値を渡すことができますので、以下で紹介致します。

hist()の引数について

hist()の引数は以下のようになっています。

matplotlib.pyplot.hist(x, bins=10, range=None, normed=False, weights=None,
                       cumulative=False, bottom=None, histtype='bar',
                       align='mid', orientation='vertical', rwidth=None,
                       log=False, color=None, label=None, stacked=False,
                       hold=None, data=None, **kwargs)

なかなか多いですね。

以下の表に覚えておいていただきたい引数をまとめました。

「こんな引数があるんだ」程度にご確認ください。

引数意味備考
x, yデータの配列入力必須
複数指定可
binsグラフの棒の数(=階級の数)デフォルト値は10
rangebinsの範囲(最大値・最小値)を指定できるデフォルト値は(x.min(), x.max())
normed正規化をするかどうか指定できるデフォルトはFalse
histtypeヒストグラムの種類を選択できる。
種類はbar(通常), barstacked(積み上げ), step(線), stepfilled(塗りつぶしありの線)がある
デフォルトはbar
orientationグラフの向きを”vertical”または”horizontal”で指定できるデフォルトはvertical
rwidth棒の幅を指定できるデフォルトはNone(指定しない)
log縦軸を対数の目盛りで表示するかどうか指定できるデフォルトはFalse
colorヒストグラムの色を指定できるデフォルトはNone(指定しない)
label凡例を載せる事ができますデフォルトはNone(凡例を載せない)

ファイルに出力する方法

最後に作成したヒストグラムを外部ファイルに出力する方法を紹介します。

必要な手順は、以下のコードを最後の1行に追加するだけです。

plt.savefig('hoge.png')

savefigは図をファイルに出力する際に使う関数です。

引数はいくつかありますが、最低でもファイル名さえ指定していれば出力できます。

まとめ

いかがでしたでしょうか?

今回の記事では、

【基礎】ヒストグラムとは
【応用】pythonでヒストグラムを描く方法
【応用】ヒストグラムをpngファイルに出力する方法

について説明致しました。

pythonでヒストグラムを作成するというのは一見ハードルが高いように思われますが、実際はそこまで難しいことではありません。

ここで作成の基礎を学び、是非今後にお役立てください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次