六角形のビン付きプロット

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

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

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

はじめに

このチュートリアルでは、Python の Matplotlib を使って六角形のビン付きプロットを作成する方法を案内します。六角形のビン付きプロットは、ビンが六角形で、色が各ビン内のデータポイントの数を表す 2 次元のヒストグラムプロットです。大規模なデータセットの分布を視覚化するのに役立ちます。

VM のヒント

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

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

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

ライブラリのインポート

六角形のビン付きプロットを作成するには、次のライブラリをインポートする必要があります。

  • プロットを作成するための matplotlib.pyplot
  • ランダムなデータを生成するための numpy
import matplotlib.pyplot as plt
import numpy as np

データの生成

numpy.random.standard_normal()numpy.random.standard_normal() を使って 100,000 個のデータポイントを生成します。standard_normal() は平均 0、標準偏差 1 の標準正規分布から乱数を生成します。

np.random.seed(19680801)

n = 100_000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
xlim = x.min(), x.max()
ylim = y.min(), y.max()

六角形のビン付きプロットを作成する

matplotlib.pyplot.hexbin() を使って六角形のビン付きプロットを作成します。

fig, ax = plt.subplots(figsize=(9, 4))

hb = ax.hexbin(x, y, gridsize=50, cmap='inferno')
ax.set(xlim=xlim, ylim=ylim)
ax.set_title("Hexagon binning")

cb = fig.colorbar(hb, ax=ax, label='counts')

ここでは、グリッドサイズを 50 に設定し、カラーマップを 'inferno' に設定しています。また、各六角形内のデータポイントの数を示すカラーバーを追加しています。

対数カラースケールを追加する

hexbin()bins='log' を設定することで、六角形のビン付きプロットに対数カラースケールを追加することができます。

fig, ax = plt.subplots(figsize=(9, 4))

hb = ax.hexbin(x, y, gridsize=50, bins='log', cmap='inferno')
ax.set(xlim=xlim, ylim=ylim)
ax.set_title("With a log color scale")

cb = fig.colorbar(hb, ax=ax, label='log10(N)')

プロットを表示する

最後に、plt.show() を使ってプロットを表示します。

plt.show()

まとめ

このチュートリアルでは、Python の matplotlib.pyplot.hexbin() を使って六角形のビン付きプロットを作成する方法を学びました。numpy.random.standard_normal()numpy.random.standard_normal() を使って乱数を生成し、六角形のビン付きプロットを作成し、対数カラースケールを追加し、plt.show() を使ってプロットを表示しました。