我有从数据框获得的相关性垫
>>> mat
Lcaud Rcaud Left_cereb_gm Right_cereb_gm Lamyg
Rcaud 0.931934 1.000000 0.856891 0.715523 0.924995
Left_cereb_gm 0.915274 0.856891 1.000000 0.938301 0.601521
Right_cereb_gm 0.744007 0.715523 0.938301 1.000000 0.445450
Lamyg 0.754676 0.924995 0.601521 0.445450 1.000000
Rput 0.717757 0.876985 0.635881 0.462773 0.912815
我可以很好地绘制它:
heatmap = plt.pcolor(mat, cmap=matplotlib.cm.Blues)
但是我想在剧情中得到传说'Lcaud','Rcaud'等等。
我怎样才能做到这一点?
答案 0 :(得分:2)
我认为你真的不想要actual legend,因为没有简单的方法来定义每个标签或标签 - 标签对的颜色。相反,我认为你问的是设置ticklabels?例如,给定这些数据:
if(!( (number.get(i)) % 3==0) || ( (number.get(i)) % 5==0) ){
temp=String.valueOf(number.get(i));
numfb.add(i,temp);
}
else if( (number.get(i)) % 5==0 && (number.get(i)) % 3==0 ){
numfb.add(i,"FizzBuzz");
}
else if( (number.get(i) ) %3 == 0){
numfb.add(i,"Fizz");
}
else if( (number.get(i) ) % 5 == 0 ){
numfb.add(i,"Buzz");
}
我们可以做到以下几点:
df = pd.DataFrame(np.random.rand(50, 5), columns=list('ABCDE'))
df.corr()
A B C D E
A 1.000000 0.184661 0.125002 0.024962 0.115385
B 0.184661 1.000000 0.224653 -0.178857 -0.185907
C 0.125002 0.224653 1.000000 -0.011785 0.238073
D 0.024962 -0.178857 -0.011785 1.000000 0.171649
E 0.115385 -0.185907 0.238073 0.171649 1.000000
或者,Pandas有一个辅助函数来帮助可视化数据框列之间的相关性,称为scatter_matrix
:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.pcolor(df.corr(), cmap=plt.cm.Blues)
ax.set_xticks(np.arange(5)+0.5) # center x ticks
ax.set_yticks(np.arange(5)+0.5) # center y ticks
ax.set_xticklabels(df.columns)
ax.set_yticklabels(df.columns)