Python 制作二维直方图,显示某个值高于或低于平均值?

Python 制作二维直方图,显示某个值高于或低于平均值?,python,arrays,histogram,colorbar,Python,Arrays,Histogram,Colorbar,我制作了两个变量(x和y)的二维直方图,每个变量都是长的一维数组。然后,我计算了每个箱子中x的平均值,并想让颜色条显示每个箱子中x高于或低于平均值的程度 到目前为止,我已经尝试创建一个新数组z,它包含每个x的平均值。当我尝试将它与pcolormesh一起使用时,我遇到了一个问题,即它不是二维数组。我还试图通过遵循此问题的解决方案()来解决此问题。在这种情况下,每个数组(x、y和z)的长度相等,每个x值都有各自的z值 我的总体目标是让颜色条不依赖于计数,而是让它显示每个x值与垃圾箱的平均x值之间的

我制作了两个变量(x和y)的二维直方图,每个变量都是长的一维数组。然后,我计算了每个箱子中x的平均值,并想让颜色条显示每个箱子中x高于或低于平均值的程度

到目前为止,我已经尝试创建一个新数组z,它包含每个x的平均值。当我尝试将它与pcolormesh一起使用时,我遇到了一个问题,即它不是二维数组。我还试图通过遵循此问题的解决方案()来解决此问题。在这种情况下,每个数组(x、y和z)的长度相等,每个x值都有各自的z值


我的总体目标是让颜色条不依赖于计数,而是让它显示每个x值与垃圾箱的平均x值之间的差异。我怀疑仅仅绘制x和z可能更有意义,但我不认为这会解决我的色条问题。

正如LoneAnder提到的,一些示例代码会很有用;不过,让我试一下你想要什么

import numpy as np
import matplotlib.pyplot as plt

N = 10000
x = np.random.uniform(0, 1, N)
y = np.random.uniform(0, 1, N) # Generating x and y data (you will already have this)

# Histogram data
xbins = np.linspace(0, 1, 100)
ybins = np.linspace(0, 1, 100)
hdata, xedges, yedged = np.histogram2d(x, y, bins=(xbins, ybins))

# compute the histogram average value and the difference
hdataMean = np.mean(hdata)
hdataRelDifference = (hdata - hdataMean) / hdataMean

# Plot the relative difference
fig, ax = plt.subplots(1, 1)
cax = ax.imshow(hdataRelDifference)
fig.colorbar(cax, ax=ax)

如果这不是你想要的,希望这里有足够的部件来适应你的需要

代码,我们需要代码+样本数据!