コンテンツにスキップ

pyplot histの使い方?

[

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

このチュートリアルでは、Pythonのヒストグラムプロットについて、範囲の広い選択肢と機能を備えた本番製品品質でプレゼンテーションに適したプロットが作成できるようになります。

もしPythonと統計について入門から中級レベルの知識を持っている場合、この記事はPythonの科学スタックを利用したライブラリ(NumPy、Matplotlib、pandas、Seabornなど)を使ってPythonでヒストグラムを構築してプロットするためのワンストップショップとして使えます。

ヒストグラムは、ほとんどの観客が直感的に理解できる形で理解できる確率分布の素早い評価ツールです。Pythonでは、ヒストグラムの構築とプロットにはさまざまなオプションがあります。ヒストグラムは棒グラフに似たグラフィカルな表現方法で知られています。

この記事では、上記の図に表示されているようなプロットや、より複雑なプロットまで作成する方法を説明します。以下の内容をカバーします:

  • サードパーティのライブラリを使わない純粋なPythonでのヒストグラムの構築
  • NumPyを使った基になるデータのサマリとしてのヒストグラムの作成
  • Matplotlib、pandas、Seabornを使った結果のヒストグラムのプロット

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

ヒストグラムのプロットを準備する際、バケットの考え方ではなく、各値が現れる回数(頻度テーブル)を報告する方法が最も簡単です。このタスクには、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()メソッドをオーバーライドしています。

Python

from collections import Counter
recounted = Counter(a)
recounted

手作業で作成した関数と同じ結果が返されることを確認できます。

詳細でステップバイステップな実行可能なサンプルコードを可能な限り含めてください。