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

Pylab(Matplotlib)の散布図で点ごとに異なるマーカーを使う方法

Pylab(Pyplot)の散布図において、各データポイントに異なるマーカーを使用したい場合は、以下の手順に従うことで実現できます。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • サンプルデータの個数を表す変数 N を初期化します。
  • x 軸・y 軸用のランダムなデータポイントを生成します。
  • 使用するマーカーの種類をリストとして作成します。
  • zip() を使って x、y、マーカーのリストをまとめます。
  • zip オブジェクトを反復処理しながら、それぞれ異なるマーカーでデータポイントをプロットします。
  • 最後に show() メソッドを呼び出して図を表示します。

サンプルコード

import numpy as np
from matplotlib import pyplot as plt

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

N = 10
x = np.random.rand(N)
y = np.random.rand(N)

markers = ["d", "v", "s", "*", "^", "d", "v", "s", "*", "^"]

for xp, yp, m in zip(x, y, markers):
   plt.scatter(xp, yp, marker=m, s=50)

plt.show()

実行結果

Pylab(Matplotlib)の散布図で点ごとに異なるマーカーを使う方法Pylab(Matplotlib)の散布図で点ごとに異なるマーカーを使う方法

コードのポイント

この手法の鍵となるのは zip() 関数です。x 座標・y 座標・マーカーの3つのリストを同時に反復処理することで、plt.scatter() を1点ずつ呼び出し、そのたびに異なる marker 引数を渡せるようになります。

なお、Matplotlib で利用できる主なマーカーには以下のようなものがあります。

  • 'o':円形
  • 's':正方形
  • 'd':ひし形
  • '^':上向き三角形
  • 'v':下向き三角形
  • '*':星形

マーカーのリストの長さはデータポイント数 N 以上である必要があるため、実際にコードを書く際は点数に合わせてマーカーを用意するか、markers * N のようにリストを繰り返して対応すると便利です。

  1. matplotlibのFuncAnimationを使ってPythonで等高線図をアニメーション化する方法

    Pythonのmatplotlibでは、FuncAnimationクラスを利用することで、等高線図(コンタープロット)を簡単にアニメーション化できます。時間とともに変化するデータを視覚的に表現したい場合に非常に便利な手法です。 等高線図をアニメーション化する手順 10×10×8の形状を持つランダムなデータを作成します。 subplots()メソッドを使って、図(Figure)とサブプロット(Axes)を作成します。 FuncAnimation()クラスを使い、指定した関数*func*を繰り返し呼び出すことでアニメーションを生成します。 フレームごとに等高線の値を更新できるよう、animat

  2. Matplotlibでhist2dプロットにカラーバーを追加する方法

    Matplotlibのhist2dプロット(2次元ヒストグラム)にカラーバーを追加するには、colorbar()メソッドの引数にスカラーマッピング可能なオブジェクト(ScalarMappable)を渡します。 実装手順 NumPyを使ってxとyのデータポイントを作成します。 subplots()メソッドを使って、図とサブプロットを作成します。 hist2d()メソッドを使って、2次元ヒストグラムを描画します。 hist2dから返されるスカラーマッピングオブジェクトをもとに、colorbar()でカラーバーを作成します。 show()メソッドを使って、図を表示します。 コード例 import