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

Matplotlibのscatter()を使って3D散布図に凡例を追加する方法

Matplotlibのscatter()を使用して3D散布図に凡例を追加するには、以下の手順に従います。

手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • サンプルデータの数を格納する変数Nを初期化します。
  • xyのデータポイントを作成し、z1z2のデータポイントのリストを生成します。
  • projection='3d'を指定して、現在の図にサブプロットを追加します。
  • xyz1のデータポイントをマーカー「*」でプロットします。
  • xyz2のデータポイントをマーカー「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()

出力結果

上記のコードを実行すると、以下のような出力が得られます。

Matplotlibのscatter()を使って3D散布図に凡例を追加する方法

解説

この例では、まず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散布図でも簡単に凡例を追加できます。

  1. Matplotlibでマーカーサイズを変えて3D空間に散布図をプロットする方法

    概要Matplotlibを使えば、マーカーのサイズをデータ値に応じて変化させながら、3D空間に散布図を描くことができます。点ごとに大きさを変えることで、3次元データをより直感的かつ効果的に可視化できます。ここでは、その具体的な手順とサンプルコードを紹介します。実装手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。numpyを使って xs、ys、zs のデータポイントを作成します。マーカーサイズを制御するための変数 s を用意します。figure() メソッドで新しい図を作成(または既存の図をアクティブ化)します。add_subplot() メソッドで proje

  2. Python Matplotlibで凡例アイテムを手動で追加する方法

    PythonのMatplotlibでは、plt.legend()メソッドを使うことで、グラフに凡例を簡単に作成できます。さらに、frameon引数を指定すると、凡例の周囲に枠線(ボーダー)を表示したままにすることが可能です。 手順 plt.xlabel()メソッドでX軸のラベルを設定します。 plt.ylabel()メソッドでY軸のラベルを設定します。 plot()メソッドでライン(折れ線)を描画します。 位置(loc)と凡例描画フラグを指定することで、最適な場所に凡例を配置し、枠線を表示させることができます。 「blue」と「orange」の要素を含む凡例を設定します。 plt.show