您几乎可以使用第3个选项。您必须将一个
mappable对象传递给,
colorbar以便它知道给颜色栏指定什么颜色图和限制。可以是
AxesImage或
QuadMesh,等等。
在的情况下
hist2D,您返回的元组
h包含that
mappable,还包含其他一些内容。
从文档:
返回 值 : 返回值为(计数,边缘,边缘,图像)。
因此,要制作颜色条,我们只需要
Image。
要修复您的代码:
from matplotlib.colors import LogNormimport matplotlib.pyplot as pltimport numpy as np# normal distribution center at x=0 and y=5x = np.random.randn(100000)y = np.random.randn(100000) + 5fig, ax = plt.subplots()h = ax.hist2d(x, y, bins=40, norm=LogNorm())fig.colorbar(h[3], ax=ax)
或者:
counts, xedges, yedges, im = ax.hist2d(x, y, bins=40, norm=LogNorm())fig.colorbar(im, ax=ax)



