Python Seaborn加热图子地块-共享加热棒和加热

Python Seaborn加热图子地块-共享加热棒和加热,python,seaborn,heatmap,Python,Seaborn,Heatmap,我试图比较3个热图。 我很难让3张地图共享颜色栏中的“加热”。 加热与每个子批次、航班、航班1和航班2的数据集相关。 而不是相对于不同的子地块 是否有办法将子批次连接到共享颜色栏 我使用了以下代码: import seaborn as sns import matplotlib.pyplot as plt flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers")

我试图比较3个热图。 我很难让3张地图共享颜色栏中的“加热”。 加热与每个子批次、航班、航班1和航班2的数据集相关。 而不是相对于不同的子地块

是否有办法将子批次连接到共享颜色栏

我使用了以下代码:

import seaborn as sns  
import matplotlib.pyplot as plt

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
flights1 = flights * 10
flights2 = flights * 2
f,(ax1,ax2,ax3, axcb) = plt.subplots(1,4, 
        gridspec_kw={'width_ratios':[1,1,1,0.08]})
ax1.get_shared_y_axes().join(ax2,ax3)
g1 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax1)
g1.set_ylabel("")
g1.set_xlabel("")
g2 = sns.heatmap(flights1,cmap="YlGnBu",cbar=False,ax=ax2)
g2.set_ylabel("")
g2.set_xlabel("")
g2.set_yticks([])
g3 = sns.heatmap(flights2,cmap="YlGnBu",ax=ax3, cbar_ax=axcb)
g3.set_ylabel("")
g3.set_xlabel("")
g3.set_yticks([])
plt.show()
cod给出了以下输出:


您需要为每个热图设置相等的vmin和vmax参数。这些是用于计算正确颜色的限制

所有小于vmin的值将设置为最小颜色,大于vmax的值将设置为最高颜色。因此,如果您的数据有一些异常值,您可能需要考虑将Vmin和Vmax紧密结合在一起,以便在值的中心附近获得更多的颜色变化。
vmin=min(min(航班[‘乘客])、min(航班1[‘乘客])、min(航班2[‘乘客]))
vmax=最大值(最大值(航班['乘客])、最大值(航班1['乘客])、最大值(航班2['乘客]))
g1=sns.heatmap(航班,vmin=vmin,vmax=vmax,cmap=“YlGnBu”,cbar=False,ax=ax1)
g2=sns.heatmap(航班,vmin=vmin,vmax=vmax,cmap=“YlGnBu”,cbar=False,ax=ax2)
g3=sns.heatmap(航班,vmin=vmin,vmax=vmax,cmap=“YlGnBu”,ax=ax3,cbar_ax=axcb)