200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 可视化 | 教你用Python实现热力图(二)

可视化 | 教你用Python实现热力图(二)

时间:2019-10-26 16:58:41

相关推荐

可视化 | 教你用Python实现热力图(二)

本文正在参与新星计划Python学习方向,详情请看:(93条消息) lifein的博客_CSDN博客-SQL SERVER,计算机三级——数据库领域博主

目录

一、导引

二、内容

(一)皮尔逊相关性系数图(热力图)

1、环境搭建

2、地图代码:(原始)

(二) 案例:

(三)遇到问题:

一、导引

在统计学中,用于度量两个具有二元变量或连续变量的数据对象之间的相关性是对象属性之间线性联系的度量(更一般属性之间的相关性计算可以类似地定义。)更准确地,两个数据变量X和Y之间的相关性(线性相关),由皮尔逊相关性系数(Pearson's correlation)定义,其值介于-1与1之间。

二、内容

(一)皮尔逊相关性系数图(热力图)

1、环境搭建

如果没有下载相关绘图的包,需要先

pip install matplotlibpip install seabornpip install numpypip install pandas

调用所需要的包

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns

2、地图代码:(原始)

1)初始化配置

df_coor=df.corr()plt.subplots(figsize=(9,9),dpi=1080,facecolor='w')# 设置画布大小,分辨率,和底色fig = sns.heatmap(data, #对应于上面,此处应为df_coorcbar=True,annot=True,square=True,fmt=".3f",vmin=0, #刻度阈值vmax=1,linewidths=.5,cmap="RdPu", #刻度颜色annot_kws={"size": 10},xticklabels=True,yticklabels=True) #seaborn.heatmap相关属性plt.savefig('filename',dpi=100)

主要参数解释:

· annot为热力图上显示数据

· fmt='.3f':为数据保留三位小数

· square:呈现正方形

· vmax:最大值为1

· 最后保留的形式可以为 “.png” 的形式

(二) 案例:

#pearson相关系数import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsplt.rcParams['font.sans-serif'] = ['Arial Unicode MS']#让中文的地方显示出来df = pd.read_excel(r'D:\演员数据.xlsx',sheet_name='Sheet2')df

计算相关性系数:

df_coor=df.corr()df_coor.head()

绘制图表,并保存图片

plt.subplots(figsize=(9,9),dpi=1080,facecolor='w')# 设置画布大小,分辨率,和底色plt.rcParams["font.sans-serif"]=['SimHei']#字体plt.rcParams['axes.unicode_minus'] = False fig=sns.heatmap(df_coor,annot=True, vmax=1, square=True, cmap="Blues", fmt='.2g')figplt.savefig('D:/累计票房和出演累计票房Pearson相关系数图.png',dpi=100)

(三)遇到问题:

1、在图表中如果无法显示负号的情况,但是有时候确实会遇到这种情况,这就需要我们添加以下这句代码:

plt.rcParams['axes.unicode_minus'] = False

2、在图表中无法显示文字,则需要添加:

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']#让中文的地方显示出来

有任何问题,欢迎在下方评论留言。

更多可视化内容,详见个人主页:

(97条消息) lifein的博客_CSDN博客-SQL SERVER,计算机三级——数据库领域博主/m0_60066036?type=blog

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。