Python Matplotlib(hist2D)中的二维直方图是如何工作的?
在以下文件中: x和y以及权重是类似于数组的,形状为(n,) 根据文件,输出之一是: h:2D阵列 样本x和y的二维直方图。价值观 x中的值沿第一个维度进行了历史编程,y中的值为 沿第二维度进行了历史记录 如何创建此二维阵列?想象Python Matplotlib(hist2D)中的二维直方图是如何工作的?,python,matplotlib,Python,Matplotlib,在以下文件中: x和y以及权重是类似于数组的,形状为(n,) 根据文件,输出之一是: h:2D阵列 样本x和y的二维直方图。价值观 x中的值沿第一个维度进行了历史编程,y中的值为 沿第二维度进行了历史记录 如何创建此二维阵列?想象 x = np.arange(1,10) y = np.arange(1,10) weights = x * y 二维阵列是如何从中创建的 我正在重新绘制之前提出的问题(它不是我的)。2D历史编程与1D历史编程的工作原理相同。定义一些存储箱,找出每个数据点所在的存储箱
x = np.arange(1,10)
y = np.arange(1,10)
weights = x * y
二维阵列是如何从中创建的
我正在重新绘制之前提出的问题(它不是我的)。2D历史编程与1D历史编程的工作原理相同。定义一些存储箱,找出每个数据点所在的存储箱,然后计算每个存储箱中的点数。如果直方图是加权的,则将权重相加,而不是仅仅计算数字 例如
x = [1.6, 2.3, 2.7]
y = [0.7, 1.8, 1.3]
我们想把它们放进有边缘的箱子里
bins = [0,1,2,3]
此外,您可能有如下重量:
weights = [0.6, 1, 2]
把形势想象出来,
sc = plt.scatter(x,y,c=weights, vmin=0)
plt.colorbar(sc)
plt.xticks(bins)
plt.yticks(bins)
plt.grid()
plt.show()
现在我们可以用肉眼观察直方图:
在箱子x=1..2,y=0..1中有一个点。该点的权重为0.6
,因此该箱子的值为0.6
在箱子x=2..3,y=1..2中有两点。它们具有权重
1
和2
。因此,该箱子的值为1+2=3
其他所有的垃圾箱都是空的。总的来说,你的直方图看起来像
[[ 0.0, 0.6, 0.0 ]
[ 0.0, 0.0, 3.0 ]
[ 0.0, 0.0, 0.0 ]]
这确实是我们让numpy进行历史编程时得到的结果
values, _, _ = np.histogram2d(x,y, bins=bins, weights=weights)
print(values.T)
注意.T
转置;这就是句子“x中的值沿第一维度进行历史记录,y中的值沿第二维度进行历史记录”想要告诉你的
plt.hist2d
是numpy.historogram2d
的包装器,然后将此数组绘制为图像
h,_, _, image = plt.hist2d(x,y,bins=bins, weights=weights)
plt.colorbar(image)
plt.show()
其中,值以颜色编码。2D组织编程与1D组织编程的工作原理相同。定义一些存储箱,找出每个数据点所在的存储箱,然后计算每个存储箱中的点数。如果直方图是加权的,则将权重相加,而不是仅仅计算数字 例如
x = [1.6, 2.3, 2.7]
y = [0.7, 1.8, 1.3]
我们想把它们放进有边缘的箱子里
bins = [0,1,2,3]
此外,您可能有如下重量:
weights = [0.6, 1, 2]
把形势想象出来,
sc = plt.scatter(x,y,c=weights, vmin=0)
plt.colorbar(sc)
plt.xticks(bins)
plt.yticks(bins)
plt.grid()
plt.show()
现在我们可以用肉眼观察直方图:
在箱子x=1..2,y=0..1中有一个点。该点的权重为0.6
,因此该箱子的值为0.6
在箱子x=2..3,y=1..2中有两点。它们具有权重
1
和2
。因此,该箱子的值为1+2=3
其他所有的垃圾箱都是空的。总的来说,你的直方图看起来像
[[ 0.0, 0.6, 0.0 ]
[ 0.0, 0.0, 3.0 ]
[ 0.0, 0.0, 0.0 ]]
这确实是我们让numpy进行历史编程时得到的结果
values, _, _ = np.histogram2d(x,y, bins=bins, weights=weights)
print(values.T)
注意.T
转置;这就是句子“x中的值沿第一维度进行历史记录,y中的值沿第二维度进行历史记录”想要告诉你的
plt.hist2d
是numpy.historogram2d
的包装器,然后将此数组绘制为图像
h,_, _, image = plt.hist2d(x,y,bins=bins, weights=weights)
plt.colorbar(image)
plt.show()
这些值是用颜色编码的。你是在问matplotlib本身是如何创建这个2D数组的?@DavidG-是的,我不确定它是否有意义。也许我误解了权重的作用。如果您愿意,可以按照源代码进行操作:-)matplotlib hist2d调用,它本身调用@DavidG,谢谢。我必须!;-)。最好也是唯一的办法。你是在问matplotlib本身是如何创建这个2D数组的吗?@DavidG-是的,我不确定它是否有意义。也许我误解了权重的作用。如果您愿意,可以按照源代码进行操作:-)matplotlib hist2d调用,它本身调用@DavidG,谢谢。我必须!;-)。最好也是唯一的办法。