python关系热图画法1

 代码:

import pandas as pd
import numpy as np
import plotly.figure_factory as ff
df = pd.DataFrame({'a':[1,3,5,0.05,0.05],
                  'b':[0.05,1,5,0.05,0.05],
                  'c':[9,0.05,1,4,5],
                  'd':[0.05,5,0.05,1,3 ],
                  'e':[5,3,0.05,4,1],
                 })
# print(df)
corr=df.corr()
# print(corr)

figure=ff.create_annotated_heatmap(
    z=corr.values,
    x=["skill1","skill2","skill3","skill4","skill5"],
    y=["e1","e2","e3","e4","e5"],
    annotation_text=corr.round(2).values,
    showscale=True
    
)

figure.update_xaxes(showticklabels=True,tickangle=-20)

figure.update_layout(width=500,height=500)
figure.show()

其中corr是相关系数,这里是计算了一个相关系数,然后将相关系数放到了关系热图里面

corr()是相关矩阵,是DataFrame内置函数,不用另外调包也能生成

corr()括号里面没有填参数时默认是皮尔逊相关系数,corr(method = 'pearson')

corr(method = 'spearman'),斯皮尔曼等级相关系数,用来分析非正态分布的数据
 

z表示内容,即热图(heatmap)根据z里面的值显示不同的热度颜色

x表示x轴上显示的信息,这里的内容要放在一个列表中,不是的话就list()转换一下

y表示y轴上显示的信息,格式同上

z是必填参数,x和y是可选参数,如果不填,则x轴和y轴上就不会有信息

annotation_text也是可选参数,这里的意思是指corr的值是有多位小数的,(annotation是指注释)显示的时候采用四舍五入的方式,只显示两位小数

showscale是指是否显示右侧的热度条,默认情况下是False不显示

update_xaxes()用来对x轴上的信息进行调整,是否显示默认值就是True,这里主要用到了tickangle这个参数,如果信息太长的话,其实他会自动旋转,但可能旋转的角度等不和心意,就可以通过这个参数来设置

update_layout():layout是布局、设计、版面设计的意思,这里主要使用来设置展示的heatmap(热图)的长和宽

figure.show()将图显示出来

结果

      a     b     c     d     e
0  1.00  0.05  9.00  0.05  5.00
1  3.00  1.00  0.05  5.00  3.00
2  5.00  5.00  1.00  0.05  0.05
3  0.05  0.05  4.00  1.00  4.00
4  0.05  0.05  5.00  3.00  1.00

          a         b         c         d         e
a  1.000000  0.914276 -0.658178 -0.057583 -0.523348
b  0.914276  1.000000 -0.573262 -0.311256 -0.695921
c -0.658178 -0.573262  1.000000 -0.489297  0.563835
d -0.057583 -0.311256 -0.489297  1.000000 -0.084773
e -0.523348 -0.695921  0.563835 -0.084773  1.000000

生成的图

 figure.update_xaxes()里面的相关参数

plotly 坐标轴(axes)设置_plotly 4座标轴、_Eloik的博客-CSDN博客

Annotated heatmaps in Python (plotly.com)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值