首页 > 解决方案 > 具有未知数据范围的多个子图的颜色条

问题描述

我正在生成两个相似数据的子图,为此我想要一个颜色条来捕获两个子图的全部范围。

fig = plt.figure(figsize=(14, 6))
ax1 = fig.add_subplot(1,2,1)
hex1 = ax1.hexbin(x, y, z)
ax2 = fig.add_subplot(1,2,2)
hex2 = ax2.hexbin(X, Y, Z)

我强加了一个颜色条,但这只能将两个 PolyCollections 之一作为输入。因此,颜色条仅代表两个数据集之一。

fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(hex1, cax=cbar_ax)

我使用的数据是随机创建的,因此我无法指定 vmin 和 vmax。

但是,对于这个特定问题,我知道我的数据将共享一个上限,而不是一个下限,因此我可以避免以下情况:

clim1=hex1.properties()['clim']
clim2=hex2.properties()['clim']
if min(clim1) < min(clim2):
    fig.colorbar(hex1, cax=cbar_ax)
else:
    fig.colorbar(hex2, cax=cbar_ax)

但是我想知道对于任何两个不共享任何共同限制的数据集是否有更通用的方法?

标签: python-3.xmatplotlibsubplotcolorbar

解决方案


推荐阅读