颜色条不会出现在使用子批次的热图中
Colorbars do not appear in heatmaps using sublots
我正在尝试绘制 3 个简单的热图,如代码所示。
但是,出现了 2 个问题:
- 部分热图中没有出现彩条。
- 生成的图非常小,而且不是通常的比例(见附图)。
供您参考:
Seaborn 版本:0.11.0。
Matplotlib 版本:3.3.4
这是我的代码:
dates=pd.date_range(start='2019-01-01', periods=2, freq='D')
d0=pd.DataFrame([[np.nan, 0.1],[np.nan,0.3]], columns=dates)
d1=pd.DataFrame([[np.nan, 0],[np.nan, 0]], columns=dates)
d2=pd.DataFrame([[67,68]], columns=dates)
DATA=[d0,d1,d2]
fig, axs = plt.subplots(ncols=2, nrows=3, sharex='col', figsize=(20, 20),
gridspec_kw={'width_ratios': [1, 15]})
for k, df in enumerate(DATA):
(ax0,ax1)=axs[k]
sns.heatmap(df, annot=False, cmap=cmap, cbar_ax=ax0, ax=ax1)
结果:
在这种情况下,您不需要强制您的颜色条和热图具有相同的 x 轴,因此如果您删除 sharex='col'
它应该可以解决:
fig, axs = plt.subplots(ncols=2, nrows=3, figsize=(20, 20),
gridspec_kw={'width_ratios': [1, 15]})
for k, df in enumerate(DATA):
ax0,ax1=axs[k]
sns.heatmap(df, annot=False, cmap=cmap, cbar_ax=ax0, ax=ax1)
我正在尝试绘制 3 个简单的热图,如代码所示。 但是,出现了 2 个问题:
- 部分热图中没有出现彩条。
- 生成的图非常小,而且不是通常的比例(见附图)。
供您参考: Seaborn 版本:0.11.0。 Matplotlib 版本:3.3.4
这是我的代码:
dates=pd.date_range(start='2019-01-01', periods=2, freq='D')
d0=pd.DataFrame([[np.nan, 0.1],[np.nan,0.3]], columns=dates)
d1=pd.DataFrame([[np.nan, 0],[np.nan, 0]], columns=dates)
d2=pd.DataFrame([[67,68]], columns=dates)
DATA=[d0,d1,d2]
fig, axs = plt.subplots(ncols=2, nrows=3, sharex='col', figsize=(20, 20),
gridspec_kw={'width_ratios': [1, 15]})
for k, df in enumerate(DATA):
(ax0,ax1)=axs[k]
sns.heatmap(df, annot=False, cmap=cmap, cbar_ax=ax0, ax=ax1)
结果:
在这种情况下,您不需要强制您的颜色条和热图具有相同的 x 轴,因此如果您删除 sharex='col'
它应该可以解决:
fig, axs = plt.subplots(ncols=2, nrows=3, figsize=(20, 20),
gridspec_kw={'width_ratios': [1, 15]})
for k, df in enumerate(DATA):
ax0,ax1=axs[k]
sns.heatmap(df, annot=False, cmap=cmap, cbar_ax=ax0, ax=ax1)