用分类数据绘制热图

时间:2018-10-26 18:21:15

标签: r heatmap

像这样的分类数据是否可能产生热图:

所以我要在y轴上使用bin,在x轴上使用year,将Firm作为值。这有可能吗?如果是这样,如何在python中做。

QString appflavour = Qbs.get("flavour")

我尝试过的与生俱来的解决方案不起作用

    Firm  year  bins
0     A  1998  binA
1     A  2000  binB
2     A  1999  binA
3     B  1998  binA
4     B  2000  binE
5     B  1999  binA
6     C  1998  binA
7     C  2000  binE
8     C  1999  binA
9     D  1998  binA
10    D  2000  binA
11    D  1999  binB
12    E  1998  binB
13    E  2000  binA
14    E  1999  binB
15    F  1998  binB
16    F  2000  binC
17    F  1999  binH
18    G  1998  binB
19    G  2000  binE
20    G  1999  binF
21    H  1998  binB
22    H  2000  binA
23    H  1999  binF
24    I  1998  binB
25    I  2000  binF
26    I  1999  binF
27    J  1998  binC
28    J  2000  binA
29    J  1999  binF
30    K  1998  binD
31    K  2000  binE
32    K  1999  binA
33    L  1998  binE
34    L  2000  binH
35    L  1999  binC
36    M  1998  binE
37    M  2000  binH
38    M  1999  binH

R有以下示例: Heatmap of categorical variable counts

使用R和以下代码,我已经能够通过上面的示例初步构建热图:

import seaborn as sns

df=pd.pivot(df7['Firm'],df7['year'], df7['bins'])

ax = sns.heatmap(df) 

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以尝试将groupbynunique

grouped = df.groupby(['year','bins']).nunique()['Firm'].reset_index([0,1])
piv_grouped = grouped.pivot(index='bins', columns='year', values='Firm')
sns.heatmap(piv_grouped, cmap='RdYlGn_r', linewidths=0.5, annot=True)

enter image description here