Matplotlibで極座標軸に散布図をプロットする方法
Matplotlibで極座標軸に散布図を描く基本手順
Matplotlibでは、scatter()メソッドとpolar投影を組み合わせることで、極座標系(円形のグラフ)上に散布図を簡単に描画できます。以下の手順に従って実装してみましょう。
- 図のサイズを設定し、サブプロット間や周囲の余白(パディング)を調整します。
- サンプルデータの数を表す変数 N を初期化します。
- NumPy を使って r(半径)、theta(角度)、area(マーカーの面積)、colors(色) のデータを生成します。
- 新しい図を作成するか、既存の図をアクティブにします。
- scatter()メソッドを使って theta と r をプロットし、色とサイズを指定します。
- show()メソッドで図を表示します。
コード例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True N = 150 r = 2 * np.random.rand(N) theta = 2 * np.pi * np.random.rand(N) area = 200 * r**2 colors = theta fig = plt.figure() ax = fig.add_subplot(projection='polar') c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75) plt.show()
コードのポイント解説
- r = 2 * np.random.rand(N): 0〜2 の範囲でランダムな半径値を150個生成します。
- theta = 2 * np.pi * np.random.rand(N): 0〜2πラジアンの範囲でランダムな角度を生成し、円全体に点が散らばるようにしています。
- area = 200 * r**2: 半径の値に応じてマーカーの大きさを変えており、外側ほど大きな点になります。
- projection='polar': サブプロットを極座標系として設定する重要な引数です。これにより通常の直交座標ではなく円形の軸が表示されます。
- cmap='hsv': 角度に応じて色相が変化するカラーマップを指定し、視覚的に分かりやすいグラフを実現しています。
- alpha=0.75: 点を半透明にすることで、重なり合う部分も確認できるようにしています。
出力結果

このコードを実行すると、中心から放射状に広がる円形の散布図が表示されます。角度によって色が変化し、中心に近い点ほど小さく、外側の点ほど大きく描画されるため、データの分布を直感的に把握できます。レーダーチャート風の可視化や方向性を持つデータの分析など、さまざまな場面で活用できるテクニックです。
-
Matplotlibでマーカーサイズを変えて3D空間に散布図をプロットする方法
概要Matplotlibを使えば、マーカーのサイズをデータ値に応じて変化させながら、3D空間に散布図を描くことができます。点ごとに大きさを変えることで、3次元データをより直感的かつ効果的に可視化できます。ここでは、その具体的な手順とサンプルコードを紹介します。実装手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。numpyを使って xs、ys、zs のデータポイントを作成します。マーカーサイズを制御するための変数 s を用意します。figure() メソッドで新しい図を作成(または既存の図をアクティブ化)します。add_subplot() メソッドで proje
-
Matplotlibで軸とグリッドを非表示にした3D散布図を作成する方法
Matplotlibで3Dプロット上に散布図を描画する際、軸やグリッドを非表示にしたいケースは少なくありません。例えば、データポイントそのものの形状や分布だけを視覚的に強調したい場合などが該当します。このような場合は、scatter()メソッドで散布図を描画し、ax.axis(off)を使って軸をオフにすることで実現できます。 手順 figureサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。 figure()メソッドを使用して、新しい図を作成するか既存の図をアクティブにします。 add_subplot()メソッドにprojection=3dを指定して、3D用の軸を