matplotlib.pyplot.scatter#
- matplotlib.pyplot.scatter(x, y, s=None, c=None, *, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, plotnonfinite=False, data=None, **kwargs)[源代码][源代码]#
一个 y 对 x 的散点图,具有变化的标记大小和/或颜色。
- 参数:
- x, y浮点数或类数组,形状为 (n, )
数据位置。
- s浮点数或类数组,形状为 (n, ),可选
标记的大小以点为单位**2(印刷点为1/72英寸)。默认值为
rcParams['lines.markersize'] ** 2
。linewidth 和 edgecolor 可以与标记大小视觉上相互作用,如果标记大小小于 linewidth,可能会导致伪影。
如果线宽大于0且边线颜色不是 'none',那么标记的有效大小将增加线宽的一半,因为描边将位于形状边缘的中心。
要消除标记边缘,可以设置 linewidth=0 或 edgecolor='none'。
- c : 类似数组或 color 的列表或 color, 可选类数组或列表
标记颜色。可能的值:
一个标量或n个数字的序列,使用 cmap 和 norm 映射到颜色。
一个2D数组,其中行是RGB或RGBA。
长度为 n 的颜色序列。
单一颜色格式字符串。
注意,c 不应该是单一的数值 RGB 或 RGBA 序列,因为这无法与要进行颜色映射的数值数组区分开来。如果你想为所有点指定相同的 RGB 或 RGBA 值,请使用单行的 2D 数组。否则,在 x 和 y 的大小匹配的情况下,值匹配将具有优先权。
如果你希望为所有点指定单一颜色,请使用 color 关键字参数。
默认为
None
。在这种情况下,标记颜色由 color、facecolor 或 facecolors 的值决定。如果这些未指定或为None
,标记颜色由Axes
当前的“形状和填充”颜色循环中的下一个颜色决定。此循环默认值为rcParams["axes.prop_cycle"]
(default:cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
)。- marker :
MarkerStyle
, 默认值:rcParams["scatter.marker"]
(default:'o'
)MarkerStyle,默认值:rcParams["scatter.marker"](默认值:'o') 标记样式。marker 可以是类的实例,也可以是特定标记的文本简写。有关标记样式的更多信息,请参阅
matplotlib.markers
。- cmap : str 或
Colormap
,默认值:rcParams["image.cmap"]
(default:'viridis'
)str 或 用于将标量数据映射为颜色的 Colormap 实例或已注册的 colormap 名称。
如果 c 是 RGB(A),则忽略此参数。
- norm : str 或
Normalize
,可选str 或 在将标量数据映射到颜色之前,用于将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下,使用线性缩放,将最低值映射到 0,最高值映射到 1。
如果提供,这可以是以下之一:
一个刻度名称,即“linear”、“log”、“symlog”、“logit”等之一。要获取可用刻度的列表,请调用
matplotlib.scale.get_scale_names()
。在这种情况下,会动态生成并实例化一个合适的Normalize
子类。
如果 c 是 RGB(A),则忽略此参数。
- vmin, vmax浮点数,可选
在使用标量数据且未明确指定 norm 时,vmin 和 vmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。当给定 norm 实例时,使用 vmin/vmax 是错误的(但使用
str
norm 名称与 vmin/vmax 一起是可以接受的)。如果 c 是 RGB(A),则忽略此参数。
- alphafloat, 默认值: None
阿尔法混合值,介于 0(透明)和 1(不透明)之间。
- linewidths : float 或 array-like, 默认值:
rcParams["lines.linewidth"]
(default:1.5
)浮点数或类似数组的对象,默认值: 标记边缘的线宽。注意:默认的 edgecolors 是 'face'。您可能也想更改这个。
- edgecolors : {'face', 'none', None} 或 color 或 color 列表, 默认:
rcParams["scatter.edgecolors"]
(default:'face'
){'face', 'none',} 标记的边缘颜色。可能的值:
'face': 边缘颜色将始终与面颜色相同。
'none': 不会绘制补丁边界。
一种颜色或一系列颜色。
对于非填充标记,edgecolors 被忽略。相反,颜色是根据 'face' 的方式确定的,即从 c、colors 或 facecolors 中确定。
- plotnonfinitebool, 默认: False
是否绘制具有非有限 c 值(即
inf
、-inf
或nan
)的点。如果为True
,这些点将以 bad 颜色映射颜色绘制(参见Colormap.set_bad
)。
- 返回:
- 其他参数:
- 数据可索引对象,可选
如果给出,以下参数还接受一个字符串
s
,如果s
是data
中的一个键,则解释为data[s]
:x, y, s, linewidths, edgecolors, c, facecolor, facecolors, color
- **kwargs :
Collection
属性集合属性
参见
plot
在标记大小和颜色相同的情况下绘制散点图。
注释
备注
这是
axes.Axes.scatter
的 pyplot 包装器。对于标记大小或颜色不变的散点图,
plot
函数将更快。任何或所有 x、y、s 和 c 都可以是掩码数组,在这种情况下,所有掩码将被组合,并且只绘制未掩码的点。
从根本上说,scatter 处理的是一维数组;x、y、s 和 c 可以作为 N 维数组输入,但在 scatter 内部它们将被展平。例外的是 c,只有当其大小与 x 和 y 的大小匹配时,才会被展平。