[matplotlibの使い方] 7.2次元ヒストグラム

matplotlib
スポンサーリンク

matplotlibで2次元ヒストグラムを作成する方法

matplotlibでヒストグラムを作成するplt.hist2d()について

2つの変数の関係を調べたいときには、matplotlibの2次元ヒストグラムを用いることで、わかりやすく理解できる。ここでは、その詳細について説明する。

モジュールのインポート

2Dヒストグラムの作成

データは、2次元ガウス分布に従うデータを、np.random.multivariate_normal(平均、共分散、要素数)で生成した。これで生成するデータは(10000,2)の形なので、.Tにより、転置して(2,10000)の形にしている。

2Dヒストグラムはplt.hist2d(x, y, bins=30, cmap=’gnuplot’)で作成できる。bins=30でx,y軸が30✕30で区切られ、ヒストグラム化される。cmapで度数に応じて変化する色を設定でき、plt.colorbar()で右のカラーバーを表示することができる。

plt.hexbin()とすることで、ヒストグラムのマスの形を6角形にすることができる。

設定方法

binsの設定

bins=intと整数の場合、xとyのbinsの数は等しく、intとなる。
bins = [int1, int2]のようにすると、xのbinsがint1、yのbinsがint2となる。
bins= np.array()のようにすると、xとyのbinsはそのnp.array()となる。
bins= [np.array1(),np.array2()]のようにすると、xのbinsがnp.array1、yのbinsがnp.array2となる。

bins= int, bins = [int, int]の場合

bins=20とbins=[20,20]は同じbinsとなる。

bins=np.array, またはbins = [np.array, np.array]の場合
rangeの設定

rangeを設定することでヒストグラムを生成する範囲を設定することができる。rangeは、range= [[xmin, xmax], [ymin, ymax]]の順で設定する。

bins=20,range=[[-2.7,5], [-8,11]]とすることで、bins=[np.linspace(-2.7,5,20),np.linspace(-8,11,20)]としたときと同じ結果が得られる。

正規化

normed=Trueで2Dヒストグラムを正規化することができる。

cmin, cmaxの設定
cmin

cmin=10で10以下の部分がNaNとなり、データが表示されなくなる。

cmax

cminと同様に、cmax=200で200以上の部分がNaNとなり、データが表示されなくなる。

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

コメント