我想绘制两个热图,它们在具有不同子图的单个图上具有相同的x轴,每个图的比例都不同,因此它们需要不同的颜色条。每个热图也具有不同数量的沿y轴的观察,见下文:如何在seaborn热图子图中保持色条宽度一致
import numpy as np
import seaborn as sns
arr1 = np.random.rand(10, 10)*100
arr2 = np.random.rand(2, 10)
fig, axes = plt.subplots(2, 1,
gridspec_kw={'height_ratios':[5, 1]},
sharex=True)
sns.heatmap(arr1, ax=axes[0])
sns.heatmap(arr2, ax=axes[1])
彩条的宽度是不重复之间是一致的。这是有道理的,并不是出乎意料的,但是我想强制每一个的宽度在审美方面是一致的。
我尝试使用cbar
参数,并明确界定了彩条的大小和位置:在做这个
fig, axes = plt.subplots(2, 1,
gridspec_kw={'height_ratios':[5, 1]},
sharex=True)
sns.heatmap(arr1, ax=axes[0])
cbar_ax = fig.add_axes([.85, .135, .019, .15])
sns.heatmap(arr2, ax=axes[1], cbar_ax=cbar_ax)
尽管该地块已不再一致的宽度。在这里最好的方法是为各个轴子图上的每个颜色条定义轴吗?似乎有可能是我失踪