📅  最后修改于: 2023-12-03 15:27:58.026000             🧑  作者: Mango
在数据分析和计算中,常常需要计算两个变量之间的关系。一种常见的方法是计算二维直方图,以显示两个变量之间的共同分布情况。在 Python 中,我们可以使用 numpy 库的 histogram2d
函数来计算二维直方图。
numpy.histogram2d(x, y, bins=10, range=None, normed=False, weights=None)
函数用于计算 x 和 y 的二维直方图。其中:
x
和 y
是要计算二维直方图的数据。bins
是用于计算直方图的 bin 的数量。可以是一个整数来表示每个维度的 bin 数量,也可以是一个二元组 (binsx, binsy)
,分别表示 x 和 y 维度的 bin 数量。range
指定每个维度的数据范围。可以是一个二元组 (xmin, xmax, ymin, ymax)
,分别表示 x 和 y 维度的数据范围。normed
指定是否将直方图规格化为概率密度。如果为 True,则返回归一化后的概率密度,否则返回原始计数。weights
指定可选的权重数组。使用示例代码:
import numpy as np
# 生成测试数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 计算二维直方图
hist, xedges, yedges = np.histogram2d(x, y, bins=10)
# 显示直方图
import matplotlib.pyplot as plt
plt.imshow(hist, interpolation='nearest', origin='low', extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])
plt.show()
上述代码生成了 1000 个随机数据,然后计算了 x 和 y 的二维直方图。最后使用 matplotlib 库的 imshow
函数将直方图显示出来。
下面是使用 histogram2d
函数计算二维直方图的示例代码:
import numpy as np
import matplotlib.pyplot as plt
# 生成测试数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 计算二维直方图
hist, xedges, yedges = np.histogram2d(x, y, bins=10)
# 显示直方图
plt.imshow(hist, interpolation='nearest', origin='low', extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])
plt.show()
运行结果如下图所示: