改变matplotlib histogram2d的高度范围
Altering height range of matplotlib histogram2d
我正在尝试使用 matplotlib 的 histogram2d 绘制一些二维经验概率分布。我希望颜色在多个不同的绘图中处于相同的比例,但即使我知道生成的分布的全局上限和下限,也无法找到设置比例的方法。照原样,每个色标将从直方图箱的最小高度到最大高度 运行,但每个图的这个范围都不同。
一个可能的解决方案是强制一个 bin 占用我的下限高度,另一个 bin 占用我的上限高度。即使这看起来也不是一个非常直接的任务。
一般来说,matplotlib 中大部分内容的颜色缩放由 vmin
和 vmax
关键字参数控制。
您必须仔细阅读两行之间的内容,但正如文档中提到的,hist2d
中的其他 kwargs 会传递给 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()
我正在尝试使用 matplotlib 的 histogram2d 绘制一些二维经验概率分布。我希望颜色在多个不同的绘图中处于相同的比例,但即使我知道生成的分布的全局上限和下限,也无法找到设置比例的方法。照原样,每个色标将从直方图箱的最小高度到最大高度 运行,但每个图的这个范围都不同。
一个可能的解决方案是强制一个 bin 占用我的下限高度,另一个 bin 占用我的上限高度。即使这看起来也不是一个非常直接的任务。
一般来说,matplotlib 中大部分内容的颜色缩放由 vmin
和 vmax
关键字参数控制。
您必须仔细阅读两行之间的内容,但正如文档中提到的,hist2d
中的其他 kwargs 会传递给 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()