コンテンツにスキップ

Pythonヒストグラムの簡単な作成法

[

Python ヒストグラムプロット: NumPy、Matplotlib、pandas、Seaborn

このチュートリアルでは、Pythonの科学スタックに含まれるNumPy、Matplotlib、pandas、Seabornなどのライブラリを使用して、製品品質の高い、プレゼンテーションに適したヒストグラムプロットを作成する方法を学びます。

Pythonと統計の入門レベルから中級レベルの知識がある場合、この記事はNumPy、Matplotlib、pandas、Seabornを使用してPythonでヒストグラムを構築およびプロットするための一つのリソースとして使用できます。

ヒストグラムは、ほとんどの観客に直感的に理解される確率分布を迅速に評価するための素晴らしいツールです。Pythonは、さまざまなオプションを提供しており、ヒストグラムを構築およびプロットするための方法もあります。多くの人は、グラフの表現方法が似ているバーグラフに似たヒストグラムを知っています。

この記事では、上記のようなプロットを作成する方法だけでなく、より複雑なものも紹介します。以下の内容をカバーします:

  • 純粋なPythonを使用したヒストグラムの作成
  • 基になるデータを要約するためにNumPyを使用したヒストグラムの計算
  • プロットしたヒストグラムをMatplotlib、pandas、Seabornで可視化する

純粋なPythonでのヒストグラム

ヒストグラムをプロットする準備をするときは、ビンについて考えるのではなく、各値がいくつの回数出現するかを報告する(頻度表)という考え方が最もシンプルです。このタスクには、Pythonの辞書が適しています。

# 任意の順序である必要はありません
a = (0, 1, 1, 1, 2, 3, 7, 7, 23)
def count_elements(seq) -> dict:
"""`seq`から要素を数え上げる."""
hist = {}
for i in seq:
hist[i] = hist.get(i, 0) + 1
return hist
counted = count_elements(a)
counted

count_elements()関数は、シーケンスから取得したユニークな要素をキーとし、その頻度(カウント)を値として持つ辞書を返します。seqのループ内でのhist[i] = hist.get(i, 0) + 1は、“シーケンスの各要素について、hist内の対応する値を1増やす”という意味です。

実際には、Pythonの標準ライブラリのcollections.Counterクラスがまさに同じことを行っており、Pythonの辞書を継承して.update()メソッドをオーバーライドしています。

from collections import Counter
recounted = Counter(a)
recounted

手作業で作成した関数が事実上同じことを行っていることを確認できます。

で有効的な手法であることを確認してください。