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

Python/Matplotlibでカラーマップに基づく極座標カラーホイールをプロットする方法


PythonとMatplotlibを使って、カラーマップに基づいたカラーホイール(色相環)を描画するには、colorbarクラスを活用し、copperなどのカラーマップを指定するのが簡単です。極座標系の軸にカラーバーを描画することで、円形のグラデーションカラーが美しく表現できます。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(padding)を調整します。

  • figure()メソッドで新しい図を作成するか、既存の図をアクティブ化します。

  • add_axes()メソッドを使って、図に新しい軸(axes)を追加します。このとき、projection='polar'を指定して極座標系にします。

  • 軸の方向(_direction)を設定し、カラーホイールの回転方向を制御します。

  • Normalizeクラスを使って、データを線形に正規化します。

  • 既存の軸上にColorbarBaseでカラーバーを描画します。

  • アーティスト(枠線など)の可視性を設定します。

  • X軸・Y軸を非表示にして、すっきりした見た目にします。

  • show()メソッドで図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt, cm, colors, colorbar

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
display_axes = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='polar')
display_axes._direction = 2 * np.pi

norm = colors.Normalize(0.0, 2 * np.pi)
cb = colorbar.ColorbarBase(display_axes,
                           cmap=cm.get_cmap('copper', 2056),
                           norm=norm,
                           orientation='horizontal')
cb.outline.set_visible(False)
display_axes.set_axis_off()

plt.show()

コードのポイント

_direction = 2 * np.pi を設定することで、カラーバーが一周360度の円環として描画されます。Normalize(0.0, 2 * np.pi)により、角度の範囲が0〜2πに正規化され、copperカラーマップが滑らかに適用されます。また、set_visible(False)で外枠を消し、set_axis_off()で軸ラベルや目盛りを非表示にすることで、カラーホイールだけが浮かび上がるデザインになります。

補足: Matplotlib 3.7以降では cm.get_cmap() は非推奨となっています。最新バージョンでは plt.get_cmap('copper', 2056) または matplotlib.colormaps['copper'].resampled(2056) を使用してください。

出力結果

Python/Matplotlibでカラーマップに基づく極座標カラーホイールをプロットする方法


  1. Python Matplotlibで3Dグラフをプロットする方法を解説

    PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使

  2. Python(Matplotlib)で散布図を作成し、データ点ごとに色を設定する方法

    Pythonの可視化ライブラリ「Matplotlib」では、scatter()メソッドを使うことで簡単に散布図を作成できます。さらに、c引数に値のリストを渡すことで、データ点ごとに異なる色(カラーマッピング)を割り当てることも可能です。 手順 np.random.rand()メソッドを使用して、指定した形状のランダムな値(x座標・y座標)を生成します。 scatter()メソッドを使い、x軸とy軸の値から散布図を作成します。このとき、c引数に0〜999までの連続した数値を指定することで、各データ点に異なる色が自動的に割り当てられます。色はデフォルトのカラーマップ(viridis)に基づいてグ