Matplotlibのscatter()を使って3D散布図に凡例を追加する方法
Matplotlibのscatter()を使用して3D散布図に凡例を追加するには、以下の手順に従います。
手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- サンプルデータの数を格納する変数Nを初期化します。
- xとyのデータポイントを作成し、z1とz2のデータポイントのリストを生成します。
- projection='3d'を指定して、現在の図にサブプロットを追加します。
- x、y、z1のデータポイントをマーカー「*」でプロットします。
- x、y、z2のデータポイントをマーカー「o」でプロットします。
- 図に凡例を配置します。
- 図を表示するにはshow()メソッドを使用します。
コード例
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True N = 100 x = np.random.rand(N) y = np.random.rand(N) z1 = [i*j for (i, j) in zip(x, y)] z2 = [i+j for (i, j) in zip(x, y)] axes = plt.subplot(111, projection='3d') axes.plot(x, y, z1, "*", label="xy") axes.plot(x, y, z2, "o", label="x+y") plt.legend(loc="upper right") plt.show()
出力結果
上記のコードを実行すると、以下のような出力が得られます。

解説
この例では、まずplt.rcParamsを使って図のサイズと自動レイアウトを設定しています。次に、NumPyのnp.random.rand()で0から1の範囲の一様乱数を100個生成し、x座標とy座標を作成します。
z1はxとyの積(i*j)、z2はxとyの和(i+j)として計算されており、それぞれ異なるデータ系列を表しています。projection='3d'を指定することで3D軸を持つサブプロットが作成され、axes.plot()にラベル引数を渡すことで各データ系列に名前を付けています。
最後にplt.legend(loc="upper right")を呼び出すことで、図の右上に凡例が表示されます。このように、プロット時にlabel引数を設定しておけば、3D散布図でも簡単に凡例を追加できます。
-
Matplotlibでマーカーサイズを変えて3D空間に散布図をプロットする方法
概要Matplotlibを使えば、マーカーのサイズをデータ値に応じて変化させながら、3D空間に散布図を描くことができます。点ごとに大きさを変えることで、3次元データをより直感的かつ効果的に可視化できます。ここでは、その具体的な手順とサンプルコードを紹介します。実装手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。numpyを使って xs、ys、zs のデータポイントを作成します。マーカーサイズを制御するための変数 s を用意します。figure() メソッドで新しい図を作成(または既存の図をアクティブ化)します。add_subplot() メソッドで proje
-
Python Matplotlibで凡例アイテムを手動で追加する方法
PythonのMatplotlibでは、plt.legend()メソッドを使うことで、グラフに凡例を簡単に作成できます。さらに、frameon引数を指定すると、凡例の周囲に枠線(ボーダー)を表示したままにすることが可能です。 手順 plt.xlabel()メソッドでX軸のラベルを設定します。 plt.ylabel()メソッドでY軸のラベルを設定します。 plot()メソッドでライン(折れ線)を描画します。 位置(loc)と凡例描画フラグを指定することで、最適な場所に凡例を配置し、枠線を表示させることができます。 「blue」と「orange」の要素を含む凡例を設定します。 plt.show