请在 Python 中详细解释 2D 直方图

Please explain in detail 2D Histogram in Python

我想了解二维直方图的值是什么。

我有 2 个长度相同的 numpy 数组 X 和 Y(每个数组中的浮点数)。

例如 X 的前 10 个值:[ 88, 193, 60, 98, 78, 100, 75, 76, 130]

和 Y:[ 18. , 9. , 36.1, 18.5, 34.3, 32.9, 32.2, 22. , 15. ]

当我使用:

import matplotlib.pyplot as plt

plt.hist2d(X,Y, bins=(10,20)) 

我得到一个二维直方图。

但这是什么意思?

一维直方图简单地显示了我拥有的每件物品的数量。

请解释一下它在 2D 中的含义。

提前致谢!

假设你有一个一维数组,你绘制它的值在 x 轴上的位置,它们非常密集以至于你无法分辨空间分布,你使用一维直方图来显示按计数的分布沿 x 轴的框。问题已解决。

那么你有两个一维数组,一个在 (x, y) 轴上的二维点列表。您将它们的位置绘制在 x-y 平面上,它们再次如此密集并且相互重叠。您希望通过平面中的框数更好地查看分布,因此您尝试使用 2D 图。问题已解决。

这是一个例子

import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

# prepare 2D random dots centered at (0, 0)
n = 100000
x = np.random.randn(n)
y = x + np.random.randn(n)

# plot data
fig1 = plt.figure()
plt.plot(x,y,'.r')
plt.xlabel('x')
plt.ylabel('y')

给予

# plot 2D histogram using pcolor
fig2 = plt.figure()
plt.hist2d(x, y, bins=100)
plt.xlabel('x')
plt.ylabel('y')
cbar = plt.colorbar()
cbar.ax.set_ylabel('Counts')

给予