Python 改变matplotlib histogram2d的高度范围

Python 改变matplotlib histogram2d的高度范围,python,matplotlib,histogram2d,Python,Matplotlib,Histogram2d,我试图用matplotlib的histogram2d绘制一些2D经验概率分布图。我希望颜色在几个不同的图上具有相同的比例,但即使我知道结果分布的全局上限和下限,也无法找到设置比例的方法。按原样,每个色标将从直方图箱的最小高度运行到最大高度,但每个图的此范围将不同 一个可能的解决方案是强制一个箱子取我的下限高度,另一个箱子取我的上限高度。甚至这看起来也不是一项非常直接的任务 通常,matplotlib中大多数内容的颜色缩放由vmin和vmax关键字参数控制 您必须稍微阅读行与行之间的内容,但正如文

我试图用matplotlib的histogram2d绘制一些2D经验概率分布图。我希望颜色在几个不同的图上具有相同的比例,但即使我知道结果分布的全局上限和下限,也无法找到设置比例的方法。按原样,每个色标将从直方图箱的最小高度运行到最大高度,但每个图的此范围将不同


一个可能的解决方案是强制一个箱子取我的下限高度,另一个箱子取我的上限高度。甚至这看起来也不是一项非常直接的任务

通常,matplotlib中大多数内容的颜色缩放由
vmin
vmax
关键字参数控制

您必须稍微阅读行与行之间的内容,但正如文档所述,
hist2d
中的其他KWARG会传递到
pcolorfast
。因此,您可以通过
vmin
vmax
kwargs指定颜色限制

例如:

import numpy as np
import matplotlib.pyplot as plt

small_data = np.random.random((2, 10))
large_data = np.random.random((2, 100))

fig, axes = plt.subplots(ncols=2, figsize=(10, 5), sharex=True, sharey=True)

# For consistency's sake, we'll set the bins to be identical
bins = np.linspace(0, 1, 10)

axes[0].hist2d(*small_data, bins=bins, vmin=0, vmax=5)
axes[1].hist2d(*large_data, bins=bins, vmin=0, vmax=5)

plt.show()