首页 > 解决方案 > 设置一个常见的合理比例以显示具有单个图例的热图子图

问题描述

我正在使用geoplot'skdeplot函数来显示不同时间段的核密度图(又名热图)。

我有一个看起来像这样的代码:

fig, axs = plt.subplots(n_rows, n_cols, figsize=(20,10))

for ax, t in zipped(axs.flatten(), periods):
    # df is a GeoPandas dataframe
    data = df.loc[(df['period'] == t), ['id', 'geometry']]
    # heatmap plot
    gplt.kdeplot(
        data,
        clip=africa.geometry,
        cmap='Reds',
        shade=True,
        cbar=True,
        ax=ax)
    gplt.polyplot(africa, ax=ax, zorder=1)
    ax.set_title(int(t))

它输出以下图像

带有图例的热图子图

相反,我希望能够为我的整个数据集(无论时间如何)定义一个通用比例,然后我可以将其kdeplot用于子图并作为子图的唯一图例。

我知道我的数据在不同年份有不同的密度,但我试图找到一种可以用于每个数据的共同值。

我认为该levels参数将是我正在寻找的参数(即在我的时期使用相同的密度等比例,例如[0.2,0.4,0.6,0.8,1])。

但是,当我结合使用它cbar=True来显示图例时,每个图例的值都不同于其他图例(以及levels向量)。

难道我做错了什么?

如果没有,我需要手动设置cbar吗?

带有图例和级别的热图子图

标签: pythonseabornheatmapkernel-densitygeoplot

解决方案


推荐阅读