matplotlib.pyplot.hexbin#

matplotlib.pyplot.hexbin(x, y, C=None, *, gridsize=100, bins=None, xscale='linear', yscale='linear', extent=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors='face', reduce_C_function=<function mean>, mincnt=None, marginals=False, colorizer=None, data=None, **kwargs)[source]#

绘制点 x, y 的 2D 六边形分箱图。

如果 CNone,六边形的值由六边形中的点数决定。否则,C 指定坐标 (x[i], y[i]) 处的值。对于每个六边形,这些值会使用 reduce_C_function 进行缩减。

参数:
x, y类数组

数据位置。xy 的长度必须相同。

C类数组,可选

如果给定,这些值将在 bin 中累积。否则,每个点的值为 1。必须与 xy 的长度相同。

gridsize整数或 (整数, 整数),默认值: 100

如果为单个整数,则表示 x 方向上的六边形数量。y 方向上的六边形数量选择是为了使六边形近似规则。

或者,如果为元组 (nx, ny),则表示 x 方向和 y 方向上的六边形数量。在 y 方向上,计数是沿着垂直对齐的六边形进行的,而不是沿着六边形的锯齿形链进行;请参阅以下插图。

(源代码, 2x.png, png)

为了获得近似规则的六边形,请选择 \(n_x = \sqrt{3}\,n_y\)

bins'log' 或 整数 或 序列,默认值: None

六边形值的离散化。

  • 如果为 None,则不应用分箱;每个六边形的颜色直接对应其计数。

  • 如果为 'log',则对颜色映射使用对数刻度。在内部,使用 \(log_{10}(i+1)\) 来确定六边形的颜色。这等同于 norm=LogNorm()

  • 如果为整数,则将计数划分为指定数量的 bin,并相应地为六边形着色。

  • 如果为值序列,则为要使用的 bin 的下限值。

xscale{'linear', 'log'},默认值: 'linear'

在水平轴上使用线性或 log10 刻度。

yscale{'linear', 'log'},默认值: 'linear'

在垂直轴上使用线性或 log10 刻度。

mincnt整数 >= 0,默认值: None

如果不是 None,则仅显示单元格中至少包含 mincnt 个点的单元格。

marginals布尔值,默认值: False

如果 marginalsTrue,则将边缘密度绘制为沿着 x 轴底部和 y 轴左侧的彩色映射矩形。

extent4 浮点元组,默认值: None

bin 的限制 (xmin, xmax, ymin, ymax)。默认值根据 gridsizexyxscaleyscale 分配限制。

如果 xscaleyscale 设置为 'log',则限制应为 10 的幂的指数。例如,对于 'linear' 刻度上的 x 限制为 1 和 50,以及 'log' 刻度上的 y 限制为 10 和 1000,请输入 (1, 50, 1, 3)。

返回:
PolyCollection

一个定义六边形 bin 的 PolyCollection

如果 marginalsTrue,则水平条和垂直条(均为 PolyCollection)将作为属性 hbarvbar 附加到返回的集合中。

其他参数:
cmap字符串或 Colormap,默认值: rcParams["image.cmap"] (默认值: 'viridis')

用于将标量数据映射到颜色的颜色映射实例或已注册的颜色映射名称。

norm字符串或 Normalize,可选

在采用 cmap 映射颜色之前,用于将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下,使用线性缩放,将最低值映射到 0,最高值映射到 1。

如果给定,可以是以下之一

vmin, vmax浮点型,可选

当使用标量数据且没有显式 norm 时,vminvmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。当给定 norm 实例时使用 vmin/vmax 是错误的(但将 str norm 名称与 vmin/vmax 一起使用是可以接受的)。

alpha0 到 1 之间的浮点数,可选

alpha 混合值,介于 0(透明)和 1(不透明)之间。

linewidths浮点数,默认值: None

如果为 None,则默认为 rcParams["patch.linewidth"] (默认值: 1.0)。

edgecolors{'face', 'none', None} 或 颜色,默认值: 'face'

六边形边缘的颜色。可能的值有:

  • 'face':将边缘绘制成与填充颜色相同的颜色。

  • 'none':不绘制边缘。这有时可能导致六边形之间出现难看的未填充像素。

  • None:以默认颜色绘制轮廓。

  • 显式颜色。

reduce_C_function可调用对象,默认值: numpy.mean

在 bin 中聚合 C 的函数。如果未给定 C,则忽略此参数。此函数必须具有以下签名:

def reduce_C_function(C: array) -> float

常用函数有:

默认情况下,仅对至少包含 1 个点的单元格进行缩减,因为某些缩减函数(例如 numpy.amax)在输入为空时会报错/警告。更改 mincnt 将调整截止值,如果设置为 0,则会将空输入传递给缩减函数。

colorizerColorizer 或 None,默认值: None

用于将颜色映射到数据的 Colorizer 对象。如果为 None,则从 normcmap 创建一个 Colorizer 对象。

data可索引对象,可选

如果给定,以下参数也接受字符串 s,如果 sdata 中的键,则将其解释为 data[s]

x, y, C

**kwargsPolyCollection 属性

所有其他关键字参数都传递给 PolyCollection

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

类数组或浮点数或 None

animated

布尔值

antialiasedaaantialiaseds

布尔值或布尔值列表

array

类数组或 None

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

clim

(vmin: 浮点数, vmax: 浮点数)

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

cmap

Colormap 或 字符串 或 None

color

颜色 或 RGBA 元组列表

edgecolorecedgecolors

颜色颜色 列表 或 'face'

facecolorfacecolorsfc

颜色颜色 列表

figure

FigureSubFigure

gid

字符串

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth

未知

in_layout

布尔值

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

label

对象

linestyledasheslinestylesls

字符串或元组或其列表

linewidthlinewidthslw

浮点数或浮点数列表

mouseover

布尔值

norm

Normalize 或 字符串 或 None

offset_transformtransOffset

变换

offsets

(N, 2) 或 (2,) 类数组

path_effects

list of AbstractPathEffect

paths

类数组列表

picker

None 或 布尔值 或 浮点数 或 可调用对象

pickradius

浮点数

rasterized

布尔值

sizes

numpy.ndarray 或 None

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

transform

变换

url

字符串

字符串列表或 None

urls

verts

类数组列表

verts_and_codes

未知

visible

布尔值

zorder

浮点数

另请参阅

hist2d

二维直方图矩形 bin

备注

注意

这是 pyplot 包装器,用于 axes.Axes.hexbin

使用 matplotlib.pyplot.hexbin 的示例#

六边形分箱图

六边形分箱图