更改 Seaborn 热图上的 y 轴缩放比例

问题描述 投票:0回答:1

下午好

非常感谢您的帮助。我正处于在构面网格中显示热图的最后阶段。当我呈现数据时,行/列组合的某些索引值可能会出现,也可能不会出现。我想将它们显示为空白并相应地调整热图条目。不幸的是,我无法让所有值(1 到 10)显示在 y 轴上,与热图中的值相匹配,如下所示。任何不存在的数据值都应在热图中显示空白行。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import re
import numpy as np

waitremap = {'0-2':0,'3-4':1,'5-6':2,'7-8':3,'9-10':4,'11-12':5}


df = pd.DataFrame({ 'Spec':['A','A','A','A','B','B','B','B'],
                    'Wait':[5,6,2,4,1,2,11,12],
                   'MyClass':[1,4,7,10,1,2,3,4],
                   'WaitClass':['5-6','5-6','0-2','3-4','0-2','0-2','11-12','11-12'],
                  })


heatdf = (pd.crosstab(index=df.MyClass,columns=df.WaitClass,values=df.Wait,aggfunc='count',normalize='index')
          #.assign(colnum =1)
          .reset_index()
         )

heatdf.index = heatdf.MyClass
heatdf1 =(heatdf
            .drop(columns=['MyClass'])
          )



#g3 = sns.heatmap(heatdf1,cmap='Blues')
g2 = sns.FacetGrid(heatdf1,height=5,sharey=False,sharex=False)
myheatmap = g2.map_dataframe(sns.heatmap)

非常感谢任何帮助

谢谢

史蒂文

在此输入图片描述

python pandas numpy matplotlib seaborn
1个回答
0
投票

如果我理解正确的话,使用

reindex

heatdf1 = (heatdf.reindex(pd.RangeIndex(1, 11))
                 .drop(columns='MyClass')
                 .fillna(0))

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.