备案 控制台
开发者社区 开发与运维 文章 正文

⚡机器学习⚡中Python实现可视化三维热力图(地形图)

简介: ⚡机器学习⚡中Python实现可视化三维热力图(地形图)

由于项目的需要,一直苦于将多层数据集累加起来做成一个呈堆积状的三维图,有点类似于地形图(实则热力图),但又不是地形图。

image.png

背景

先说说项目背景,本菜鸡是搞故障诊断的,所以免不了用上一些统计学的知识,看过之前我的Blog的都会发现,T 2 T^2T

2

 和 S P E SPESPE 在故障诊断邻域或者说是再小范围一点,在过程监控邻域,是很好用且很关键的两个统计量,用于监测过程中的一些有故障的检测点或者区间,会有阈值限,超过阈值的则判断为故障,反而,则为正常。具体可以看->这里。


三维图

之前尝试过很多中方法来实现三维图,但是,。。。,但是均没实现完美的效果,如Echarts、Pyecharts、Plotly等等,最终还是只有用yyds,真的,没有它解决不了的可视化问题!!!


输入

image.png

image.png

(数据就像上面那样,这里我们以 T 2

 的多层可视化为例展开吧)


那么下面我们直接开始搞可视化吧!!!


输出

输出最终则为我们的可视化三维图,先不爆料,看后续。


可视化

我们用的Python来实现可视化。


导入库

库先给导入进来:

import matplotlib.pyplot as plt    # 可视化的matplotlib库
import pandas as pd                # 数据表操作的库
from mpl_toolkits.mplot3d import Axes3D   # 三维可视化
from icecream import ic            # 类似于print输出


封装一些Function

虽然我们的代码不是很长,但为了代码的规范和美观,建议还是讲其封装为一个一个的function,这样调用起来更方便。

  1. 读取数据表
def loaddata(filename):
    """
    读取传入得数据表
    """
    dtf = pd.read_csv(filename)    # 读取表格文件
    return dtf

T2 三维热力图

def T2_plot(df_value, df_xy):
    """
    绘制T2三维热力图  
    """
    #获取行列数
    q1 = df_value.shape[1]  # 列数
    r1 = df_value.shape[0]  # 行数
    print('x_y有%r行,%r列。' % (r1, q1))
    X = []
    Y = []
    Z = []
    # 设置空数组备用
    for a in range(2, q1):  # 选择需要叠加的Value量选值范围2~11, 应该遍历所有列,因为每个数据表的维度不一定一致,所以最大通过获取的列传入
        for xx in range(r1 + 1):  # 循环迭代不同的层数
            if xx < r1:
                IIx = df_xy.iloc[xx, 0]  # 取第一列的值
                IIy = df_xy.iloc[xx, 1]  # 取第二列的值
                IIz = df_value.iloc[xx, a]  # 取相应的T2或SPE的值
                # 将每个坐标轴X,y及其T2或SPE的值存入一个list中
                X.append(IIx)
                Y.append(IIy)
                Z.append(IIz)
    ic(len(Z))  # 查看Z的数量
    # 开始制图
    fig = plt.figure()
    ax = Axes3D(fig)
    ax.set_xlabel('IX', fontsize=10, color='black')  # 设置x标签及其参数
    ax.set_ylabel('JY', fontsize=10, color='black')  # 设置y标签及其参数
    ax.set_zlabel('Value', fontsize=10, color='black')   # 设置z标签及其参数
    ax.plot_trisurf(X, Y, Z, cmap=plt.get_cmap('jet'), linewidth=0.1)  # 三角表面图
    plt.show()    # 渲染3D图显示
  1. 主函数
# 主函数
if __name__=="__main__":
    # 导入数据表文件名
    T2_name = "T2.csv"
    xy_name = "x_y.csv"
    # 读取数据表
    t2 = loaddata(T2_name)
    xy = loaddata(xy_name)
    # 制作T2三维图
    T2_plot(df_value=t2, df_xy=xy)

最终的效果图像这样:

image.png

换个方位再来一张:

image.png

让我们再看看底部:

image.png

深色的地方则是有多个相近的点堆积到一起的,所以会在那些点显得颜色很深。

来个大汇总,完整代码

import matplotlib.pyplot as plt
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D
from icecream import ic
# 读取数据表
def loaddata(filename):
    """
    读取传入得数据表
    """
    dtf = pd.read_csv(filename)    # 读取表格文件
    return dtf
# T2三维热力图
def T2_plot(df_value, df_xy):
    """
    绘制T2三维热力图  todo:完善
    """
    #获取行列数
    q1 = df_value.shape[1]  # 列数
    r1 = df_value.shape[0]  # 行数
    print('x_y有%r行,%r列。' % (r1, q1))
    X = []
    Y = []
    Z = []
    # 设置空数组备用
    for a in range(2, q1):  # 选择需要叠加的Value量选值范围2~11, 应该遍历所有列,因为每个数据表的维度不一定一致,所以最大通过获取的列传入
        for xx in range(r1 + 1):  # 循环迭代不同的层数
            if xx < r1:
                IIx = df_xy.iloc[xx, 0]  # 取第一列的值
                IIy = df_xy.iloc[xx, 1]  # 取第二列的值
                IIz = df_value.iloc[xx, a]  # 取相应的T2或SPE的值
                # 将每个坐标轴X,y及其T2或SPE的值存入一个list中
                X.append(IIx)
                Y.append(IIy)
                Z.append(IIz)
    ic(len(Z))  # 查看Z的数量
    # 开始制图
    fig = plt.figure()
    ax = Axes3D(fig)
    ax.set_xlabel('IX', fontsize=10, color='black')  # 设置x标签及其参数
    ax.set_ylabel('JY', fontsize=10, color='black')  # 设置y标签及其参数
    ax.set_zlabel('Value', fontsize=10, color='black')   # 设置z标签及其参数
    ax.plot_trisurf(X, Y, Z, cmap=plt.get_cmap('jet'), linewidth=0.1)  # 三角表面图
    plt.show()    # 渲染3D图显示
# 主函数
if __name__=="__main__":
    # 导入数据表文件名
    T2_name = "T2.csv"
    xy_name = "x_y.csv"
    # 读取数据表
    t2 = loaddata(T2_name)
    xy = loaddata(xy_name)
    # 制作T2三维图
    T2_plot(df_value=t2, df_xy=xy)



府学路18号车神
目录
相关文章
叫我小唐就好了
|
5天前
|
机器学习/深度学习 数据可视化 数据处理
python 机器学习 sklearn——一起识别数字吧
python 机器学习 sklearn——一起识别数字吧
叫我小唐就好了
9 0
叫我小唐就好了
|
5天前
|
机器学习/深度学习 Python
python 机器学习 sklearn——手把手教你预测心脏病
python 机器学习 sklearn——手把手教你预测心脏病
叫我小唐就好了
10 0
老板这功能得加钱
|
8天前
|
存储 数据可视化 算法
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
老板这功能得加钱
11 0
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
桃李春风一杯酒
|
8天前
|
数据可视化 数据挖掘 Python
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
【5月更文挑战第20天】本文介绍了使用Python的pandas、matplotlib和seaborn库进行数据可视化的步骤,包括创建示例数据集、绘制折线图、柱状图、散点图、热力图、箱线图、小提琴图和饼图。这些图表有助于直观理解数据分布、关系和趋势,适用于数据分析中的探索性研究。
桃李春风一杯酒
24 1
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
叫个什么名字
|
13天前
|
数据采集 数据可视化 数据挖掘
如何利用Python中的Pandas库进行数据分析和可视化
Python的Pandas库是一种功能强大的工具,可以用于数据分析和处理。本文将介绍如何使用Pandas库进行数据分析和可视化,包括数据导入、清洗、转换以及基本的统计分析和图表绘制。通过学习本文,读者将能够掌握利用Python中的Pandas库进行高效数据处理和可视化的技能。
叫个什么名字
28 0
Bigcrab__
|
13天前
|
机器学习/深度学习 算法 算法框架/工具
Python深度学习基于Tensorflow(5)机器学习基础
Python深度学习基于Tensorflow(5)机器学习基础
Bigcrab__
20 2
Bigcrab__
|
13天前
|
JSON 数据可视化 Shell
数据结构可视化 Graphviz在Python中的使用 [树的可视化]
数据结构可视化 Graphviz在Python中的使用 [树的可视化]
Bigcrab__
13 0
程序猿~厾罗
|
13天前
|
机器学习/深度学习 算法 Python
深入浅出Python机器学习:从零开始的SVM教程/厾罗
深入浅出Python机器学习:从零开始的SVM教程/厾罗
程序猿~厾罗
36 0
拓端数据部落
|
13天前
|
数据可视化 Python
python中Copula在多元联合分布建模可视化2实例合集|附数据代码
python中Copula在多元联合分布建模可视化2实例合集|附数据代码
拓端数据部落
42 1
拓端数据部落
|
13天前
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
拓端数据部落
441 2

热门文章

最新文章

  • 1
    大模型服务平台百炼之模型训练与调优实践分享|快来围观~
  • 2
    PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
  • 3
    Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
  • 4
    PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
  • 5
    TensorFlow分布式训练:加速深度学习模型训练
  • 6
    构建自定义机器学习模型:Scikit-learn的高级应用
  • 7
    构建高效机器学习模型:从特征工程到模型调优
  • 8
    人工智能平台PAI产品使用合集之是否可以在模型部署发布后以http接口形式提供给业务开发人员使用
  • 9
    《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
  • 10
    利用机器学习优化数据中心能效的策略研究
  • 1
    深入理解Python数据结构中的深浅拷贝
    34
  • 2
    python编程简介(一)
    104
  • 3
    python操作列表方法(二)
    36
  • 4
    python操作列表方法(一)
    33
  • 5
    python测试代码(三)
    29
  • 6
    python测试代码(二)
    24
  • 7
    python测试代码(一)
    27
  • 8
    python函数用法(五)
    34
  • 9
    python函数用法(四)
    25
  • 10
    python函数用法(三)
    20
  • 相关课程

    更多
  • Python爬虫实战
  • Python开发基础入门
  • Python常用数据科学库
  • Python网络爬虫实战
  • Python完全自学手册图文教程
  • Python基础快速入门实战教程
  • 相关电子书

    更多
  • From Python Scikit-Learn to Sc
  • Data Pre-Processing in Python:
  • 双剑合璧-Python和大数据计算平台的结合
  • 相关实验场景

    更多
  • 用Python画圣诞树
  • 基于Hologres+PAI+计算巢,5分钟搭建企业级AI问答知识库
  • 使用Python完成RDS数据开发及分析
  • 基于Kibana Lens进行数据可视化,灵活分析航班信息
  • 【图生图】一键部署3D卡通风格模型
  • 【文生文】一键部署ChatYuan模型
  • 下一篇
    2024年阿里云免费云服务器及学生云服务器申请教程参考

    深圳SEO优化公司南澳外贸网站建设南平网站设计保定网站建设报价恩施网站seo优化多少钱大浪企业网站改版价格临沂营销型网站建设报价徐州网页设计推荐同乐推广网站推荐桐城高端网站设计推荐珠海seo公司嘉兴SEO按效果付费报价廊坊网站优化按天收费公司龙华外贸网站设计推荐坪山外贸网站制作塘坑企业网站建设报价铜陵优秀网站设计哪家好渭南SEO按天计费邯郸seo优化报价海东网站设计模板天津百搜标王哪家好扬州网站搜索优化哪家好中山网站设计模板衡水SEO按天扣费多少钱贵港百度爱采购公司巢湖外贸网站建设哪家好上海网站推广工具哪家好漯河百姓网标王推广推荐晋城模板网站建设多少钱萍乡网站制作设计推荐南联关键词排名哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化