Polar axis(極座標軸)での散布図
Polar AxisでのScatter Plotについて
Matplotlibの極座標系(Polar axis)を使ったscatter plotは、通常のx-y座標とは異なる視覚表現を可能にします。角度と半径でデータを配置することで、円形の分布や周期的なパターンを直感的に表現できます。本記事では、基本的な使い方から応用例まで、具体的なコードとともに解説します。
コード&解説
モジュールのインポート
バージョン
基本的な使い方
Matplotlibでpolar scatter plotを作成するには、subplot_kw={'projection': 'polar'}
を指定します。

主な特徴
- 角度(theta): 点の角度位置を指定します。0から2πの範囲で表現されます。
- 半径(r): 中心からの距離を表します。値が大きいほど中心から離れた位置に配置されます。
- サイズ(s): マーカーのサイズを制御できます。半径に応じて変化させることで視覚的な効果を高められます。
- 色(c): カラーマップを使用して、角度や半径に応じた色分けが可能です。
原点位置の調整

このコードは、極座標系のscatter plotで原点の位置を調整する例です:
ax.set_rorigin(-1.0)
– これが重要なポイントです。極座標の原点(中心)を半径-1.0の位置に移動します。つまり、通常の中心から外側に1.0単位離れた位置が新しい原点になります。これにより、プロットの見え方が変わり、中心部分に空白ができます
角度の基準位置(0度の位置)を変更

このコードは、極座標系のscatter plotで角度の基準位置(0度の位置)を変更する例です:
ax.set_theta_zero_location('W', offset=90)
– これが重要なポイントです。通常、極座標の0度は右側(東)にありますが、この設定で西(’W’)を基準位置に変更します。さらにoffset=90
により、その位置から反時計回りに90度回転させます。
つまり、西(左側)から90度反時計回りに回転した位置(北側)が新しい0度の位置になります。これにより、プロットの向きを自由に調整できます。
他の位置指定オプション:
- ‘N’ (北/上)
- ‘S’ (南/下)
- ‘E’ (東/右)
- ‘W’ (西/左)
ミャクミャク風プロット
このコードは、極座標系のscatter plotを使ってミャクミャク(大阪・関西万博のキャラクター)の顔を描画しています。
データの生成部分
- 赤色の点(theta_r, r_r, s_r): ミャクミャクの特徴的な赤い細胞のような部分を表現。12個の点を角度と半径で配置し、サイズを個別に設定しています。
- 白色の点(theta_w, r_w, s_w): 目の白い部分を表現。5個の点で構成されています。
- 青色の点(theta_b, r_b, s_b): 目の瞳の青い部分を表現。白色の点の上に重ねて配置され、サイズは白色の点の0.2倍になっています。
プロット部分
ax.set_rlim(0, 2)
– 半径の範囲を0〜2に設定background=ax.scatter(0,0,c="#0168b6",s=6*10**4)
– 中心に大きな青色の円を配置して背景(顔の土台)を作成clip_on=False
– プロット領域の外にはみ出しても点を表示できるようにする設定- 描画順序:背景(青)→ 赤い点 → 白い点 → 青い点(瞳)の順で重ねています
各点の角度(theta)と半径(r)、サイズ(s)を調整することで、ミャクミャクの特徴的な顔の配置を再現しています。

まとめ
Polar axisでのscatter plotは、極座標系の特性を活かした効果的なデータ可視化手法です。基本的な使い方として、projection='polar'
を指定することで簡単に実装でき、角度(theta)、半径(r)、サイズ(s)、色(c)といったパラメータを自由に調整できます。set_rorigin()
による原点位置の変更やset_theta_zero_location()
による角度基準の調整など、高度なカスタマイズも可能です。本記事で紹介したミャクミャクの描画例のように、科学的なデータ分析だけでなく、創造的な視覚表現にも応用できる柔軟性の高い手法です。
参考

コメント