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

一种可能的解决方案是迫使一个垃圾箱占据我的下限的高度,并迫使另一个垃圾箱占据我的上限的高度。即使这似乎也不是一个非常直接的任务。

最佳答案

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

您必须稍微阅读两行,但正如文档所述,hist2d中的其他kwargs会传递给pcolorfast。因此,您可以通过vminvmax 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()

关于python - 更改matplotlib直方图的高度范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29236907/

10-14 19:29