Python 如何对热图进行排序以显示最高相关性?

Python 如何对热图进行排序以显示最高相关性?,python,pandas,seaborn,jupyter,heatmap,Python,Pandas,Seaborn,Jupyter,Heatmap,我正在尝试创建一个热图,以显示客户使用报告的次数之间的关系,使用Count列作为热图中的值,客户可以根据需要使用多个模板。我的数据框看起来像这样(原始数据框有638行,我创建了虚拟数据以隐藏原始数据以保护隐私): 要绘制热图,我使用以下函数: heatmap1_data = pd.pivot_table(df, values='Count', index=['Customer'], columns='Repo

我正在尝试创建一个热图,以显示客户使用报告的次数之间的关系,使用Count列作为热图中的值,客户可以根据需要使用多个模板。我的数据框看起来像这样(原始数据框有638行,我创建了虚拟数据以隐藏原始数据以保护隐私):

要绘制热图,我使用以下函数:

heatmap1_data = pd.pivot_table(df, values='Count', 
                     index=['Customer'], 
                     columns='Report')
plt.subplots(figsize=(25, 30))
sns.heatmap(heatmap1_data, cmap="Blues",vmin=0, vmax=2)
我的热图是这样返回的(出于隐私目的,我裁剪了轴中的名称):

由于my dataframe中计数的变化,热图看起来过于分散,这导致Pivot表具有许多“0”值,以显示某些客户未使用哪些报告。有没有一种方法可以对其进行排序,使最高的相关性在热图中显示在一起,而不是非常分开?

试试这个

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(6,6))
sns.heatmap(df[['heatmap1_data']].sort_values(by=['Report'],ascending=False),
            vmin=-1,
            cmap='coolwarm',
            annot=True)
有关所有详细信息,请参阅下面的链接


我尝试了这个方法,但是得到了错误:keyrerror:“['heatmap1\u data']不在索引中”。这段代码适用于透视表吗?好的,名为“df”的对象是您的数据帧。我认为你在那里很好。名为“heatmap1_data”的对象是您正在排序的字段名。最后,名为“Report”的对象可以与正在排序的字段相同。可以这样尝试:sns.heatmap(df['field1']].sort_值(by=['field1'],升序=False),vmin=-1,cmap='coolwarm',annot=True)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(6,6))
sns.heatmap(df[['heatmap1_data']].sort_values(by=['Report'],ascending=False),
            vmin=-1,
            cmap='coolwarm',
            annot=True)