Возможна ли тепловая карта с такими категориальными данными, как это:
, поэтому я хочу, чтобы ячейки по оси y, год по оси x и фирма в качестве значений.Это возможно?если так, как это сделать в Python.
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
Одно решение с seaborn, которое я попробовал, не сработало
import seaborn as sns
df=pd.pivot(df7['Firm'],df7['year'], df7['bins'])
ax = sns.heatmap(df)
R имеет следующий пример: Тепловая карта отсчетов категориальных переменных
Используя R и следующий код, я предварительно смог построить тепловую карту на примере выше:
library(magrittr)
library(dplyr)
m<- read.csv("~/df55testR.csv",
stringsAsFactors=FALSE, header=T)
m<-m%>%select(2:6)
ml <- reshape2::melt(data = m, id.vars="Firm", variable.name = "year", value.name="bin")
ml
ml$Test_Gr <- apply(ml[,2:3], 1, paste0, collapse="_")
mw <- reshape2::dcast(ml, Firm ~ bin, fun.aggregate = length)
mwm<-as.matrix(mw[,-1])
mwm
mcm <- t(mwm) %*% mwm
colnames(mcm) <- colnames(mw)[-1]
rownames(wc) <- colnames(xw)[-1]
gplots::heatmap.2(mcm, trace="none", col = rev(heat.colors(15)))