超简单Python画Heatmap热力图 -库plotly

在画热力图之前需要安装一个 Plotly 的第三方库

pip install plotly

推荐一下其他 画图工具 -> 点击 这里

  • 数据解释
    导入的数据格式为两个.csv的表格,由于懒惰没有再处理原始数据集了,具体传值赋值 pandas 均能实现。

    其中的 T2_All_Value 代表多列 z轴 ,x_y_axis 代表对应z轴的 xy坐标。

T2_All_Value

x_y_axis

上代码

import pandas as pd
from tqdm import tqdm
import plotly.graph_objects as go# 关于取xyz的值做矩阵
df_all_T2 = pd.read_csv('T2_All_Value.csv', index_col=0)  # index_col=0用于消除unnamed:0列
# 读取T2数据集的行列数
q1 = df_all_T2.shape[1]  # 列数
r1 = df_all_T2.shape[0]  # 行数
print('T2有%r行,%r列。' % (r1, q1))
# 读取x和y轴数据
df_x_y = pd.read_csv('x_y_axis.csv')
# 获取表格的行列数q,r
q2 = df_x_y.shape[1]  # 列数
r2 = df_x_y.shape[0]  # 行数print('x_y有%r行,%r列。' % (r2, q2))list_ix = []
list_iy = []
list_iz = []def choose_layer(layers):for xx in range(r2 + 1):if xx < r2:IIx = df_x_y.iloc[xx, 0]IIy = df_x_y.iloc[xx, 1]IIz = df_all_T2.iloc[xx, layers]# print('[x, y, z] = [%r, %r, %r]' % (IIx, IIy, IIz))# 将每个坐标轴存入一个list中list_ix.append(IIx)list_iy.append(IIy)list_iz.append(IIz)# print('本次的数据:', one_data)mmx = list_ixmmy = list_iymmz = list_izreturn mmx, mmy, mmz

上面Function的到输入数据,每个mmx、mmy、mmz代表的是x-y-z轴的数据列表,类型为 list

def get_data(mmxx, mmyy, mmzz):df = pd.DataFrame(data=[v for v in zip(mmxx, mmyy, mmzz)], columns=['x', 'y', 'Value'])return df

上一段 get_data() 主要将输入数据变成DataFrame的格式输出。

主函数 代码如下:

if __name__ == '__main__':# SIZE = 100for i in range(1, q1):mmx, mmy, mmz = choose_layer(i)df = get_data(mmxx=mmx, mmyy=mmy, mmzz=mmz)layout = go.Layout(# plot_bgcolor='red',  # 图背景颜色paper_bgcolor='white',  # 图像背景颜色autosize=True,# width=2000,# height=1200,title=str(i) + '-热力图',titlefont=dict(size=30, color='gray'),# 图例相对于左下角的位置legend=dict(x=0.02,y=0.02),# x轴的刻度和标签xaxis=dict(title='x坐标轴数据',  # 设置坐标轴的标签titlefont=dict(color='red', size=20),tickfont=dict(color='blue', size=18, ),tickangle=45,  # 刻度旋转的角度showticklabels=True,  # 是否显示坐标轴# 刻度的范围及刻度# autorange=False,# range=[0, 100],# type='linear',),# y轴的刻度和标签yaxis=dict(title='y坐标轴数据',  # 坐标轴的标签titlefont=dict(color='blue', size=18),  # 坐标轴标签的字体及颜色tickfont=dict(color='green', size=20, ),  # 刻度的字体大小及颜色showticklabels=True,  # 设置是否显示刻度tickangle=-45,# 设置刻度的范围及刻度autorange=True,# range=[0, 100],# type='linear',),)fig = go.Figure(data=go.Heatmap(showlegend=True,name='Value',x=df['x'],y=df['y'],z=df['Value'],type='heatmap',),layout=layout)fig.update_layout(margin=dict(t=100, r=150, b=100, l=100), autosize=True)fig.show()

最终热力图效果如图所示

右上角有交互功能,可 放大缩小保存移动等系列操作。

完整代码

import pandas as pd
from tqdm import tqdm
import plotly.graph_objects as go# 关于取xyz的值做矩阵
df_all_T2 = pd.read_csv('T2_All_Value.csv', index_col=0)  # index_col=0用于消除unnamed:0列
# 读取T2数据集的行列数
q1 = df_all_T2.shape[1]  # 列数
r1 = df_all_T2.shape[0]  # 行数
print('T2有%r行,%r列。' % (r1, q1))
# 读取x和y轴数据
df_x_y = pd.read_csv('x_y_axis.csv')
# 获取表格的行列数q,r
q2 = df_x_y.shape[1]  # 列数
r2 = df_x_y.shape[0]  # 行数print('x_y有%r行,%r列。' % (r2, q2))list_ix = []
list_iy = []
list_iz = []
one_data = []
all_data = []for xx in range(r2 + 1):if xx < r2:IIx = df_x_y.iloc[xx, 0]IIy = df_x_y.iloc[xx, 1]IIz = df_all_T2.iloc[xx, 7]# one_data.append(IIx)# print('ddddddd:', one_data)# all_data.append(one_data)# print('[x, y, z] = [%r, %r, %r]' % (IIx, IIy, IIz))# 将每个坐标轴存入一个list中list_ix.append(IIx)list_iy.append(IIy)list_iz.append(IIz)
# print('本次的数据:', one_data)
print('xxx:', list_ix)
print('yyy', list_iy)
print('zzz', list_iz)
mmx = list_ix
mmy = list_iy
mmz = list_iz
print('duoshaogehsu', len(mmx))
long = len(mmx)  # 取LIST长度
# for ir in tqdm(range(long)):
#     # for ie in ():for ie, iu, io in tqdm(zip(mmx, mmy, mmz)):# print('shenmgui:', ie)one_data.append(ie)# print('aaaaaa:',one_data)one_data.append(iu)# print('ssssss:', one_data)one_data.append(io)# print('cccccc:', one_data)# time.sleep(1)all_data.append(one_data)# print('牛逼的循环:', all_data)one_data = []print('dasd asdas :', all_data)data = all_dataxdata = list(set(mmx))
ydata = list(set(mmy))bx = []
by = []print('changdu1:', len(xdata))
print('changdu2:', len(ydata))
print('changdu3:', len(mmz))for i_i in xdata:bx.append(str(i_i))for i_j in ydata:by.append(str(i_j))print('字符串类型的xdata:', bx)
print('字符串类型的ydata:', by)xdata = bx
ydata = bydef get_data(mmxx, mmyy, mmzz):df = pd.DataFrame(data=[v for v in zip(mmxx, mmyy, mmzz)], columns=['x', 'y', 'z'])return dfif __name__ == '__main__':# SIZE = 100df = get_data(mmxx=mmx, mmyy=mmy, mmzz=mmz)layout = go.Layout(# plot_bgcolor='red',  # 图背景颜色paper_bgcolor='white',  # 图像背景颜色autosize=True,# width=2000,# height=1200,title='T2热力图',titlefont=dict(size=30, color='gray'),# 图例相对于左下角的位置legend=dict(x=0.02,y=0.02),# x轴的刻度和标签xaxis=dict(title='x坐标轴数据',  # 设置坐标轴的标签titlefont=dict(color='red', size=20),tickfont=dict(color='blue', size=18, ),tickangle=45,  # 刻度旋转的角度showticklabels=True,  # 是否显示坐标轴# 刻度的范围及刻度# autorange=False,# range=[0, 100],# type='linear',),# y轴的刻度和标签yaxis=dict(title='y坐标轴数据',  # 坐标轴的标签titlefont=dict(color='blue', size=18),  # 坐标轴标签的字体及颜色tickfont=dict(color='green', size=20, ),  # 刻度的字体大小及颜色showticklabels=True,  # 设置是否显示刻度tickangle=-45,# 设置刻度的范围及刻度autorange=True,# range=[0, 100],# type='linear',),)fig = go.Figure(data=go.Heatmap(showlegend=True,name='Value',x=df['x'],y=df['y'],z=df['z'],type='heatmap',),layout=layout)fig.update_layout(margin=dict(t=100, r=150, b=100, l=100), autosize=True)fig.show()

"
你背转的侧影

组成你姓名的声音

你笑声的曲调

这些都是你留给我的闪闪发亮的物事

"

Respect !

超简单Python画Heatmap-热力图 -plotly库相关推荐

  1. 超简单Python安全批量打水印教程

    原文来自Python实用宝典:超简单Python安全批量打水印教程! 工作的时候,尤其是自媒体,我们必备水印添加工具以保护我们的知识产权,网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下 ...

  2. python在docx指定位置插表格_超简单Python将指定数据插入到docx模板指定位置渲染并保存...

    超简单Python将指定数据插入到docx模板渲染并生成 最近有一个需求,制作劳动合同表,要从excel表格中将每个人的数据导入到docx劳动合同中,重复量很大,因此可以使用python高效解决.为了 ...

  3. 简单python画圣诞树图片-圣诞节!教你用 Python 画棵圣诞树

    原标题:圣诞节!教你用 Python 画棵圣诞树 作者 | 糖甜甜甜 责编 | 胡巍巍 如何用Python画一个圣诞树呢? 最简单: 1height = 5 2 3stars = 1 4for i i ...

  4. 超简单 Python 头像戴圣诞帽教程

    还记得疫情之初,我们用Python给头像戴口罩的文章吗? 开工第一天,先用Python戴个口罩 当时只是简单的调用了第三方模块将口罩图片替换入原图,内容非常简短. 今天,将为大家提供一个能够通过以下三 ...

  5. 在职爬虫工程师,带给大家超简单 Python 爬虫教程

    本篇 Python 爬虫教程主要讲解以下5部分内容,请按照顺序进行学习. 爬虫概述:介绍什么是爬虫,爬虫的目的和应用. 爬虫基础知识:介绍爬虫的基本概念,例如网络协议,HTML 结构,CSS 样式表等 ...

  6. csv转为矩阵 python_超简单python脚本实现从resfinder+blast下机数据到csv抗性基因矩阵...

    今天还是在做张阿姨的项目,还是那100多个菌,她说要blast一下抗性基因,那就比咯,最出名与权威的的细菌抗性基因库自然肯定是resfinder了. for i in $(cat list); do ...

  7. python画出热力图,热力图数值,修改字体,字体大小等

    1.数据来源于excel,是一个7*5的矩阵 首先导入相应的包,读取excel import os import matplotlib.pyplot as plt import matplotlib ...

  8. Python超简单容易上手的画图工具库

    今天,在网上发现一款很棒的python画图工具库.很简单的api调用就能生成漂亮的图表.并且可以进行一些互动. pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开 ...

  9. python报告水印怎么弄_超简单Python安全批量打水印教程!

    工作的时候,尤其是自媒体,我们必备水印添加工具以保护我们的知识产权 网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下问题:在线工具需要上传到对方服务器,信息不安全. 很多工具不具备批量处 ...

  10. python 添加半透明水印_超简单Python安全批量加水印教程!

    工作的时候,尤其是自媒体,我们必备水印添加工具以保护我们的知识产权 ,网上有许多的在线/下载的水印添加工具,但他们或多或少都存在以下问题:在线工具需要将图片上传到对方服务器,信息不安全. 很多工具不具 ...

最新文章

  1. 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
  2. Prokka:快速原核基因组、宏基因组基因注释
  3. php 多图上传编辑器,laravel中使用WangEditor及多图上传
  4. [置顶] 细说Cache
  5. 云计算:革新动力并不是一把万能钥匙
  6. 深度学习常见算法之训练自己的数据
  7. 避免软件失败的7个关键实践——来自项目管理群的讨论
  8. iOS开发之oc(二十)--Foundation(5)NSDictionary
  9. php底部导航栏,微信小程序之底部导航栏目开发(附代码)
  10. 省市区三级联动数据库
  11. 【调音小栈】跳羚PRO12PRO22声卡搭载机架跳线设置教程
  12. 英语3500词(十一)entertainment主题(2022.1.23)
  13. wsl Java开发_WSL2 + Docker + IDEA 开发到发布一步到位
  14. C语言随机产生26个大写字母
  15. 学习笔记(19):零基础搞定Python数据分析与挖掘-常用的正则符号(二)
  16. Iris Network Traffic Analyzer简易教程
  17. 手机控制电脑远程开机,笔记本与老电脑都能实现
  18. 从“零”开始的C语言
  19. 初学者指南:如何毫不费力地优化Jupyter笔记本?
  20. 冒泡排序Matlab程序超详细注释

热门文章

  1. ai老师人工智能培训老师计算机视觉老师叶梓:计算机视觉领域的自监督学习模型——MAE-12
  2. librtmp linux下 编译,LibRtmp编译并导入Android Studio
  3. HttpUtils请求工具类
  4. 自动化睡眠分期工具:开源、免费、高效
  5. 经济数学线性代数第三版课后习题答案
  6. Java实现打印进度条
  7. 基于51单片机的金沙滩12864的计算器
  8. java排队系统模型,排队论模型(三):M / M / s/ s 损失制排队模型
  9. Java检验yyyymm合法,JAVA日期格式校验正则表达式方法,yyyy年MM月,yyyy-MM-dd格式等...
  10. pe系统如何读取手机_五分钟教会你pe系统制作