Matplotlib を使って複数のヒストグラムを作成する

PythonPythonBeginner
オンラインで実践に進む

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

ヒストグラムは、データセットの分布を視覚化するための素晴らしい方法であり、Matplotlib はデータ可視化を作成するための最も人気のある Python ライブラリの 1 つです。この実験では、Matplotlib を使用して複数のデータセットに対して並列ヒストグラムを作成します。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題に直面した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まず、コードに必要なライブラリをインポートする必要があります。ヒストグラムには Matplotlib と NumPy を使用します。

import matplotlib.pyplot as plt
import numpy as np

サンプルデータセットを作成する

次に、ヒストグラムに使用するサンプルデータセットを作成します。それぞれ 387 個のデータポイントを持つ 3 つのデータセットを作成します。

np.random.seed(19680801)
number_of_data_points = 387
labels = ["A", "B", "C"]
data_sets = [np.random.normal(0, 1, number_of_data_points),
             np.random.normal(6, 1, number_of_data_points),
             np.random.normal(-3, 1, number_of_data_points)]

プロット用の量を計算する

ヒストグラムを作成する前に、プロット用のいくつかの量を計算する必要があります。データセットの範囲、ビン分割されたデータセット、最大ビン値、および各ヒストグラムの x 座標を計算します。

hist_range = (np.min(data_sets), np.max(data_sets))
number_of_bins = 20
binned_data_sets = [
    np.histogram(d, range=hist_range, bins=number_of_bins)[0]
    for d in data_sets
]
binned_maximums = np.max(binned_data_sets, axis=1)
x_locations = np.arange(0, sum(binned_maximums), np.max(binned_maximums))

ヒストグラムを描画する

これで、描画に必要な量を計算したので、ヒストグラムを作成できます。各ヒストグラムに対して水平バーを描画するためにbarhメソッドを使用します。

## すべてのヒストグラムのビンの境界は同じです
bin_edges = np.linspace(hist_range[0], hist_range[1], number_of_bins + 1)
heights = np.diff(bin_edges)
centers = bin_edges[:-1] + heights / 2

## 各ヒストグラムをループして描画します
fig, ax = plt.subplots()
for x_loc, binned_data in zip(x_locations, binned_data_sets):
    lefts = x_loc - 0.5 * binned_data
    ax.barh(centers, binned_data, height=heights, left=lefts)

ax.set_xticks(x_locations, labels)
ax.set_ylabel("Data values")
ax.set_xlabel("Data sets")

ヒストグラムを表示する

最後に、showメソッドを使用してヒストグラムを表示できます。

plt.show()

まとめ

この実験では、Matplotlib を使って複数のデータセットに対する並列ヒストグラムを作成する方法を学びました。描画に必要な量を計算し、各ヒストグラムに対して水平バーを作成するためにbarhメソッドを使用しました。これらのスキルを使えば、データの情報豊かな可視化を作成し、洞察を得て、他の人に調査結果を伝えることができます。