相关性分析热力图
如何进行相关性分析请见博文
得到的相关系数矩阵和索引填到如下的代码中相应位置
源代码
#!usr/bin/env python
# encoding:utf-8
'''
__Author__:沂水寒城
功能: python实践统计学中的三大相关性系数,并绘制相关性分析的热力图
'''
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import pearsonr, spearmanr
plt.rcParams['font.family'] = 'SimSun'
def dataPlot():
'''
基于相关性系数计算结果来绘制
'''
data1 = [[1.000000 , 0.311608 , 0.626898 , 0.522995 , 0.542141 , 0.550992],
[0.311608 , 1.000000 , 0.257304 , 0.119874 , 0.074362 , 0.273347],
[0.626898 , 0.257304 , 1.000000, 0.630843 , 0.561050, 0.659293],
[0.522995 , 0.119874 , 0.630843 , 1.000000, 0.669914, 0.687464],
[0.542141 , 0.074362 , 0.561050 , 0.669914 , 1.000000 , 0.614127],
[0.550992 , 0.273347 , 0.659293 , 0.687464, 0.614127 , 1.000000]]
data1= np.array(data1)
fig, ax = plt.subplots(figsize=(10, 10))
key_list = ['花菜类', '茄类','花叶类', '食用菌类', '水生根茎类','辣椒类']
sns.heatmap(pd.DataFrame(np.round(data1, 4), columns=key_list, index=key_list), annot=True, vmax=1, vmin=0,
xticklabels=True,
yticklabels=True, square=True, cmap="Wistia")
#ax.set_title(' The Spearman correlation matrix', fontsize=23)
# ax.set_ylabel('Y', fontsize=18)
ax.set_xticklabels(ax.get_xticklabels(), fontsize=14, rotation=360)
ax.set_yticklabels(ax.get_yticklabels(), fontsize=14)
# ax.set_xlabel('X', fontsize=18)
plt.savefig('data1.png')
if __name__ == '__main__':
dataPlot()
结果
热力图的颜色可以在heatmap函数的cmap参数中修改。
常见的cmap值包括:
“viridis”:深蓝至亮黄的颜色映射。
“plasma”:深紫红至亮黄的颜色映射。
“inferno”:黑至红黄的颜色映射。
“magma”:黑至白黄的颜色映射。
“cividis”:深蓝至亮黄的颜色映射,适合于彩色盲人士。
若想要更多的颜色选择,可以见网站