pyplot.scatter 减小标记大小
pyplot.scatter reduce marker size
这里是一个高二维点密度的散点图示例,仅供说明。
如何减小标记的大小以更好地区分各个点?绘图的大小应保持原样。
import numpy as np
import matplotlib.pyplot as plt
from sklearn import preprocessing
from matplotlib import cm
np.random.seed(10)
n=3000
x = np.arange(n)
z = np.sin(x/n)
y = np.random.randint(0, 100, size=(n))
colvals = preprocessing.minmax_scale(z)
plt.scatter(x, y, color=cm.rainbow(colvals), marker='.')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
plt.scatter
有一个参数 s
用于控制标记大小。
s
可以是适用于所有点的单个浮点数,例如所有尺码 5:
s = 5
plt.scatter(x, y, color=cm.viridis(colvals), marker='.', s=s)
或s
可以是映射到每个点的大小数组,例如当 z > 0.5
时为 5 号,否则为 30 号:
s = np.where(z > 0.5, 5, 30)
plt.scatter(x, y, color=cm.viridis(colvals), marker='.', s=s)
请注意,为了匹配散点标记和绘图标记的大小,绘图标记的 markersize
应该是散点标记的 s
:
的平方根
s = 900
plt.scatter(-1, 0, s=s, color='tab:orange')
plt.plot(1, 0, 'o', markersize=s ** 0.5)
这里是一个高二维点密度的散点图示例,仅供说明。
如何减小标记的大小以更好地区分各个点?绘图的大小应保持原样。
import numpy as np
import matplotlib.pyplot as plt
from sklearn import preprocessing
from matplotlib import cm
np.random.seed(10)
n=3000
x = np.arange(n)
z = np.sin(x/n)
y = np.random.randint(0, 100, size=(n))
colvals = preprocessing.minmax_scale(z)
plt.scatter(x, y, color=cm.rainbow(colvals), marker='.')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
plt.scatter
有一个参数 s
用于控制标记大小。
s
可以是适用于所有点的单个浮点数,例如所有尺码 5:s = 5 plt.scatter(x, y, color=cm.viridis(colvals), marker='.', s=s)
或
s
可以是映射到每个点的大小数组,例如当z > 0.5
时为 5 号,否则为 30 号:s = np.where(z > 0.5, 5, 30) plt.scatter(x, y, color=cm.viridis(colvals), marker='.', s=s)
请注意,为了匹配散点标记和绘图标记的大小,绘图标记的 markersize
应该是散点标记的 s
:
s = 900
plt.scatter(-1, 0, s=s, color='tab:orange')
plt.plot(1, 0, 'o', markersize=s ** 0.5)