numpy.
histogram2d
计算两个数据样本的二维直方图。
一种包含待直方图化点的X坐标的数组。
一个包含要进行柱状图化的点的Y坐标的数组。
料仓规格:
如果为int,则表示两个维度的箱数(nx=ny=bin)。 如果类似于数组,则表示两个维度的箱边缘(x_edges=y_edges=bin)。 如果 [int] ,每个维度中的箱数(nx,ny=箱)。 如果 [数组,数组] ,每个维度中的肥料箱边缘(x_边缘,y_边缘=肥料箱)。 组合 [int数组] 或 [数组,int] ,其中int是箱数,array是箱边。
如果为int,则表示两个维度的箱数(nx=ny=bin)。
如果类似于数组,则表示两个维度的箱边缘(x_edges=y_edges=bin)。
如果 [int] ,每个维度中的箱数(nx,ny=箱)。
如果 [数组,数组] ,每个维度中的肥料箱边缘(x_边缘,y_边缘=肥料箱)。
组合 [int数组] 或 [数组,int] ,其中int是箱数,array是箱边。
沿每个维度(如果未在 bins 参数): [[xmin, xmax], [ymin, ymax]] . 此范围之外的所有值都将被视为异常值,并且不在柱状图中计数。
[[xmin, xmax], [ymin, ymax]]
如果为false,则默认为返回每个容器中的样本数。如果为真,则返回概率 密度 垃圾箱的功能, bin_count / sample_count / bin_area .
bin_count / sample_count / bin_area
行为相同的密度参数的别名。为了避免与破坏规范的论点混淆 histogram , density 应优先考虑。
histogram
值的数组 w_i 称量每个样品 (x_i, y_i) . 如果 normed 是True。如果 normed 如果为false,则返回的直方图值等于属于每个容器中的样本的权重之和。
w_i
(x_i, y_i)
样本的二维直方图 x 和 y . 价值观 x 沿着第一个维度和值进行柱状图 y 是沿着第二维度的柱状图。
粮箱沿第一个维度边缘。
粮箱沿第二维度边缘。
参见
一维直方图
histogramdd
多维柱状图
笔记
什么时候? normed 为真,则返回的柱状图是样本密度,定义为产品的箱数和 bin_value * bin_area 是1。
bin_value * bin_area
请注意,柱状图不遵循笛卡尔惯例,其中 x 数值在横坐标上,并且 y 坐标轴上的值。更确切地说, x 是沿着数组的第一个维度(垂直)绘制的柱状图,并且 y 沿着数组的第二个维度(水平)。这确保了与 histogramdd .
实例
>>> from matplotlib.image import NonUniformImage >>> import matplotlib.pyplot as plt
构建一个二维柱状图,该柱状图的箱宽可变。首先定义垃圾箱边缘:
>>> xedges = [0, 1, 3, 5] >>> yedges = [0, 2, 3, 4, 6]
接下来,我们创建一个带有随机bin内容的直方图h:
>>> x = np.random.normal(2, 1, 100) >>> y = np.random.normal(1, 1, 100) >>> H, xedges, yedges = np.histogram2d(x, y, bins=(xedges, yedges)) >>> H = H.T # Let each row list bins with common y range.
imshow 只能显示方形箱子:
imshow
>>> fig = plt.figure(figsize=(7, 3)) >>> ax = fig.add_subplot(131, title='imshow: square bins') >>> plt.imshow(H, interpolation='nearest', origin='lower', ... extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]]) <matplotlib.image.AxesImage object at 0x...>
pcolormesh 可以显示实际边缘:
pcolormesh
>>> ax = fig.add_subplot(132, title='pcolormesh: actual edges', ... aspect='equal') >>> X, Y = np.meshgrid(xedges, yedges) >>> ax.pcolormesh(X, Y, H) <matplotlib.collections.QuadMesh object at 0x...>
NonUniformImage 可用于通过插值显示实际肥料箱边缘:
NonUniformImage
>>> ax = fig.add_subplot(133, title='NonUniformImage: interpolated', ... aspect='equal', xlim=xedges[[0, -1]], ylim=yedges[[0, -1]]) >>> im = NonUniformImage(ax, interpolation='bilinear') >>> xcenters = (xedges[:-1] + xedges[1:]) / 2 >>> ycenters = (yedges[:-1] + yedges[1:]) / 2 >>> im.set_data(xcenters, ycenters, H) >>> ax.images.append(im) >>> plt.show()