scatter
函数的功能
plot
函数是matplotlib
中最常见的绘图函数,作用是以x
为自变量y
为因变量绘制的带结点标记的线条或以x,y
为坐标的坐标点(Plot y versus x as lines and/or markers)。plot
函数也可以绘制散点图,但是所有点的标记大小和颜色都是统一的。因此,plot
函数绘制的散点图只能比较x,y
两个维度。scatter
函数绘制散点图的功能与plot
函数相似,也是以x
为自变量y
为因变量绘制x,y
为坐标的点。但是scatter
函数绘制的点可以修改不同标记大小和颜色。因此scatter
函数可以在x,y
、标记大小、标记颜色这4个维度对数据进行比较。
scatter
函数的参数
scatter
函数的签名为matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=<deprecated parameter>, edgecolors=None, *, plotnonfinite=False, data=None, **kwargs)
-
x, y
:点的位置。浮点数或类数组结构(维度为(n, )
)。必备参数!与plot
函数的x,y
参数不同,x,y
都不能为空。x, y
支持多维数组,但是x, y
的维度必须一致,多数数组会被展平(flatten)为一维数组。 -
s
:标记的面积。浮点数或类数组结构(维度为(n, )
)。可选参数。默认值为rcParams['lines.markersize'] ** 2
。 -
c
:标记的颜色。数组、颜色数组或颜色。 可选参数。 -
marker
:标记样式。取值参考matplotlib.markers
。默认值为cParams["scatter.marker"] ('o')
。 -
cmap
:色彩映射。已注册的色彩映射名称或Colormap
实例。默认值为rcParams["image.cmap"] ('viridis')
。cmap
只能在c
参数为浮点数数组时才能使用。 -
norm
:Normalize
,默认值为None
。如果c
参数为浮点数数组,norm
参数在[0,1]
范围内缩放颜色数据,c
构造与cmap
的颜色映射。如果为None
,默认的colors.Normalize
。 -
alpha
:浮点数。取值范围为[0,1]
,0
为透明,1
为不透明。默认值为None
。 -
linewidths
:标记边缘线宽。浮点数或类数组结构。默认值为rcParams["lines.linewidth"] (1.5)
。 -
edgecolors
:标记边缘颜色。取值为{'face', 'none', None}
、颜色、颜色序列。默认值为rcParams["scatter.edgecolors"] ('face')
。-
'face'
:标记边缘颜色与标记颜色相同 -
'none'
:没有边线。
-
x,y
参数取值演示
import matplotlib.pyplot as plt
plt.scatter([1, 2], [3, 4])
plt.scatter(1, 2)
plt.scatter(1, [4])
plt.scatter([[5, 6], [7, 8]], [[5, 6], [7, 8]])
plt.show()
x,y,s,c
参数演示
x,y,s,c
参数均为一维列表,尺寸相同。因此,可以在4个维度对数据进行对比。
import matplotlib.pyplot as plt
plt.scatter([1, 2, 3, 4], [1, 2, 3, 4], [100, 200, 300, 400], [1, 2, 3, 4])
# plt.scatter(x=[1, 2, 3, 4], y=[1, 2, 3, 4], s=[100, 200, 300, 400], c=[1, 2, 3, 4])
plt.show()