Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで二変量の同時分布(ジョイント分布)を作成する方法

Matplotlibで二変量データの同時分布(ジョイント分布)を可視化したい場合、scatter()メソッドを使った散布図が最も手軽な方法です。散布図では、x軸とy軸にそれぞれの変数を配置することで、2つの変数の関係性や相関の強さを直感的に把握できます。

実装の手順

  • figure.figsizeで図のサイズを設定し、figure.autolayoutでサブプロット間や周囲の余白を自動調整します。

  • NumPyを使ってxとyのデータポイントを生成します。ここでは正規乱数を利用し、yにxを加えることで相関のあるデータを作成します。

  • plt.subplots()でfigureオブジェクトとAxes(サブプロット)を作成します。

  • scatter()メソッドでxとyをプロットします。c引数で色分けに使う値を指定し、alpha引数で点の透明度を調整すると、密度の高い領域が見えやすくなります。

  • show()メソッドを呼び出して図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt

# 図のサイズとレイアウトの設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 相関のある2変量データを生成
x = 2 * np.random.randn(5000)
y = x + np.random.randn(5000)

# 散布図としてプロット
fig, ax = plt.subplots()
_ = ax.scatter(x, y, alpha=0.08, cmap="copper", c=x)

plt.show()

出力結果

上記のコードを実行すると、xとyの同時分布を表す散布図が表示されます。点の色はxの値に応じて「copper」カラーマップでグラデーション表示され、透明度を下げているため、データが集中している領域ほど濃く描画され、分布の形状がひと目でわかります。

Matplotlibで二変量の同時分布(ジョイント分布)を作成する方法


  1. Matplotlibで任意のデータを使って4Dプロットを作成する方法

    Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。手順figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。サブプロット構成の一部として、3D投影(projection=3d)を指定した Axes を追加します。NumPy を使って x

  2. PythonのMatplotlibで中空(白抜き)の四角形マーカーを描画する方法

    Matplotlibで中空(塗りつぶしなし)の四角形マーカーを描くには、マーカーの種類に ks を指定し、markerfacecolor=none、markersize=15、markeredgecolor=red を設定します。これにより、枠線だけの白抜きスタイルの四角形マーカーが描画されます。 各パラメータの意味 ks:k は黒色(black)、s は四角形(square)を表すマーカースタイルです。 markerfacecolor=none:マーカーの内部を塗りつぶさず、中空にします。 markersize(ms):マーカーのサイズを指定します(ここでは15)。 markeredgec