【发布时间】:2019-06-06 13:11:12
【问题描述】:
我想在一个图中创建多个(此处:两个)seaborn 热图,其中热图具有不同的值范围,但应包含一个共享图例。
以下代码在一个图中创建了两个热图,但两个图的颜色编码不同。
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame(np.random.random((4,4)))
df2 = pd.DataFrame([1., .5, .9, .6])
fig, ax = plt.subplots(ncols=2, sharey=True)
sns_g = sns.heatmap(df, annot=True, yticklabels=True, ax=ax[0])
sns_g2 = sns.heatmap(df2, annot=True, cbar=False, ax=ax[1])
# fig.subplots_adjust(right=0.6)
# cbar_ax = fig.add_axes([1.1, 0.15, 0.05, .77])
# fig.colorbar(ax[1], cax=cbar_ax)
plt.tight_layout()
plt.show()
我在 sns_g 中包含 cbar=True 只是为了表明这两个图例代表不同的范围。我想明确地创建两个地块。
【问题讨论】:
-
@ImportanceOfBeingErnest:感谢您的参考。但是,我不确定在这种情况下如何添加颜色图。如果我取消注释代码中的行,我会得到:AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'