Matplotlib で散布図のマーカーサイズを設定する方法

  1. 関数 scatter()s キーワード引数
  2. plot メソッドでサイズを制御するための markersize パラメータ

散布図のマーカーのサイズは、関数 scatter()s キーワード引数によって制御されます。ここで、s はスカラーまたは配列です。

関数 scatter()s キーワード引数

scatter 関数の構文:

matplotlib.pyplot.scatter(x, y,
                          s=None,
                          c='b', 
                          marker='o', 
                          cmap=None, 
                          norm=None,
                          vmin=None, 
                          vmax=None, 
                          alpha=None, 
                          linewidths=None,
                          faceted=True, 
                          verts=None,
                          hold=None, 
                          **kwargs)

ここで、smarkersize を設定するためのスカラーまたは x および y と同じ長さの配列です。デフォルトのマーカーサイズは rcParams ['lines.markersize'] ** 2 です。ドキュメントによると、sポイント単位のマーカーサイズ** 2 です

すべてのポイントに同じマーカーサイズを設定する

import numpy as np
import matplotlib.pyplot as plt

x = [1,2,3,4,5]
y=np.sin(x)

plt.scatter(x,y,s=500,c='magenta')

plt.title('Scatter plot of sinx')
plt.xlabel('x')
plt.ylabel('sinx')
plt.xlim(0,6)
plt.ylim(-2,2)
plt.show()

散布図のマーカーサイズを均一に増加

ポイントのマーカーサイズを不均一に増やす

マーカーの幅を 2 倍にする

マーカーの「幅」(または「高さ」)を 2 倍にするには、A = W * H =>(2W)*(2H)= 4A のように、s4 倍に増やす必要があります。

import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [a**2 for a in x]
s = [10*4**n for n in range(len(x))]
plt.scatter(x,y,s=s)
plt.title('Doubling width of marker in scatter plot')
plt.xlabel('x')
plt.ylabel('x**2')
plt.xlim(0,6)
plt.ylim(0,30)
plt.show()

マーカーの 2 倍の幅

マーカーの面積を 2 倍にする

マーカーの面積を 2 倍にするには、面積を2 倍に増やして、マーカーサイズが面積に比例してスケーリングされるようにします。

import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [a**2 for a in x]
s = [10*2**n for n in range(len(x))]
plt.scatter(x,y,s=s)
plt.title('Doubling area of marker in scatter plot')
plt.xlabel('x')
plt.ylabel('x**2')
plt.xlim(0,6)
plt.ylim(0,30)
plt.show()

マーカーの 2 倍の領域

plot メソッドでサイズを制御するための markersize パラメータ

import matplotlib.pyplot as plt

x = [1,2,3,4,5]
y = [0]*len(x)

plt.plot(x,y, 'bo', markersize=10)  
plt.show()

ここで、円の領域は markersize パラメータによって制御されます。

プロットメソッドでサイズを制御するためのマーカーサイズパラメーター

関連記事 - Matplotlib Scatter

  • Matplotlib で散布図の点を線で結ぶ方法
  • comments powered by Disqus