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

Ste*_*eve 9 python numpy matplotlib histogram2d

我试图了解2D直方图的值是什么.

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

例如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)) 
Run Code Online (Sandbox Code Playgroud)

我得到了一个2D直方图.

但是这是什么意思?

1D直方图只显示我拥有的每件物品的数量.

请解释一下2D中的含义.

提前致谢!

Neo*_*o X 16

假设您有一维数组,您在x轴上绘制其值的位置,它们是如此密集以至于无法分辨空间分布,您使用一维直方图来显示沿x轴的方框数量的分布.问题解决了.

然后你有两个一维数组,一个(x,y)轴的二维点列表.你在xy平面上绘制它们的位置,它们又如此密集并且相互重叠.您希望通过平面中的方框数更好地查看分布,因此您可以尝试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')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

# 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')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述