当前位置: 首页 > news >正文

【Python】数据可视化利器PyCharts在测试工作中的应用

目录

PyCharts 简介

PyCharts 的安装

缺陷统计

测试用例执行情况

使用JavaScript情况

缺陷趋势分析

将两张图放在一个组合里(grid)

将两张图重叠成一张图(overlap)

将多张图组合在一个page 中(page)

实际应用:常态化性能压测数据统计

总结

资料获取方法


PyCharts 简介

PyCharts 是一个基于 Python 的数据可视化库,它支持多种图表类型,如折线图、柱状图、饼图等。PyCharts 提供了简洁的 API,使得用户能够轻松地创建各种图表,同时支持个性化的配置,以满足不同需求。PyCharts 的底层依赖于 ECharts,这使得它在功能和性能上都具有很高的优势。

PyCharts 的安装

PyCharts 的安装非常简单,只需在命令行中输入以下命令:

pip install pyecharts

安装完成后,即可在 Python 代码中导入 PyCharts 库并开始使用。

作为软件测试工程师,我们经常需要处理测试过程中的数据。文不如表、表不如图,通过 PyCharts,我们可以轻松的将这些数据以直观的形式展示出来,从而更好地分析问题、汇报进度。

缺陷统计

在软件测试过程中,我们需要对发现的缺陷进行统计和分析。以下代码演示了如何使用 PyCharts 创建一个饼图,展示各个严重级别的缺陷数量:

image

from pyecharts.charts import Pie
from pyecharts import options as optspie = Pie()
pie.add("", [("建议", 33), ("一般", 45), ("严重", 20), ("致命", 2)])
pie.set_global_opts(title_opts=opts.TitleOpts(title="缺陷严重级别统计"))
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
pie.render()

执行上面的代码会自动的在同级目录生成一个 render.xml 文件,使用浏览器打开就可以看到展示了不同严重级别的缺陷数量及其占比的饼图。我们可以依据这个图更好地制定测试策略和优先级。

当然,我们也可以在 render 之前加上下面这段代码来指定颜色,得到下面这张图:

# 指定颜色
colors = ["#0000FF", "#4169E1", "#1E90FF", "#00BFFF"]
pie.set_colors(colors)

image

测试用例执行情况

在执行测试用例时,我们需要关注测试用例的执行情况,如通过率、失败率等。以下代码演示了如何使用 PyCharts 创建一个堆叠柱状图,展示各个模块的测试用例执行情况:

image

from pyecharts.charts import Bar
from pyecharts import options as optsbar = Bar()
bar.add_xaxis(["模块A", "模块B", "模块C", "模块D", "模块E"])# 添加通过和失败的数据,并设置为堆叠模式
bar.add_yaxis("通过", [90, 80, 70, 60, 50], stack="总量")
bar.add_yaxis("失败", [10, 20, 30, 40, 50], stack="总量")# 设置全局选项,包括标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="测试用例执行情况"),)# 设置系列选项,包括标签格式
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="outside", formatter="{c}%")) # 显示百分比的标签格式bar.render()

这段代码创建了一个堆叠柱状图,展示了各个模块的测试用例通过和失败数量。通过这样的图表,我们可以直观地了解到各个模块的测试情况,从而更好地调整测试计划和资源分配。

使用JavaScript情况

因为pycharts 底层基于 ECharts,所以 JavaScript代码也可以在脚本中使用。

image

在 Python 中调用 JavaScript 代码:

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.commons.utils import JsCodebar = Bar()
bar.add_xaxis(["模块A", "模块B", "模块C", "模块D", "模块E"])passed_cases = [90, 75, 76, 69, 58]# 添加通过和失败的数据,并设置为堆叠模式
bar.add_yaxis("通过",passed_cases,stack="总量",label_opts=opts.LabelOpts(is_show=False)  # 隐藏通过用例的标签
)# 使用回调函数计算失败用例的百分比
failure_percentage = f"""
function(params) {{var passed_cases = {passed_cases};var total = params.value + passed_cases[params.dataIndex];var percentage = (params.value / total) * 100;return percentage.toFixed(2) + '%';
}}
"""bar.add_yaxis("失败",[10, 20, 30, 40, 50],stack="总量",label_opts=opts.LabelOpts(is_show=True, position="inside", formatter=JsCode(failure_percentage))  # 显示失败用例的标签
)# 设置全局选项,包括标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="测试用例执行情况"),
)bar.render()

缺陷趋势分析

在项目进展过程中,我们需要关注缺陷的趋势,以评估项目质量和进度。以下代码演示了如何使用 PyCharts 创建一个折线图,展示项目中缺陷的趋势变化:

image

from pyecharts.charts import Line
from pyecharts import options as opts# 创建 Line 对象
line = Line()# 添加 x 轴数据
line.add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"])# 新增问题单和已修复问题单的数据
new_defects = [50, 35, 28, 20, 5]
fixed_defects = [5, 20, 30, 33, 50]# 计算剩余未修复的问题单
remaining_defects = []
cumulative_new_defects = 0
cumulative_fixed_defects = 0# 遍历新增问题单和已修复问题单的数据
for new, fixed in zip(new_defects, fixed_defects):# 累积计算新增问题单和已修复问题单的数量cumulative_new_defects += newcumulative_fixed_defects += fixed# 计算剩余未修复的问题单,并将结果添加到 remaining_defects 列表中remaining_defects.append(cumulative_new_defects - cumulative_fixed_defects)# 向图表中添加 y 轴数据系列
line.add_yaxis("新增缺陷", new_defects)
line.add_yaxis("已修复缺陷", fixed_defects)
line.add_yaxis("剩余未修复问题单", remaining_defects)# 设置全局选项,包括标题
line.set_global_opts(title_opts=opts.TitleOpts(title="缺陷趋势分析"))# 渲染图表
line.render()

这段代码创建了一个折线图,展示了项目中新增缺陷和已修复缺陷的数量变化。通过这样的图表,我们可以直观地了解到项目的质量趋势,从而更好地制定测试策略和计划。

将两张图放在一个组合里(grid)

image

体现随着时间的变化,执行用例和 bug 情况的变化:

from pyecharts.charts import Line, Bar, Grid
from pyecharts import options as opts# 创建 Line 对象new_defects = [50, 35, 28, 20, 5]
fixed_defects = [5, 20, 30, 33, 50]remaining_defects = []
cumulative_new_defects = 0
cumulative_fixed_defects = 0for new, fixed in zip(new_defects, fixed_defects):cumulative_new_defects += newcumulative_fixed_defects += fixedremaining_defects.append(cumulative_new_defects - cumulative_fixed_defects)line = (Line().add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"]).add_yaxis("新增缺陷", new_defects).add_yaxis("已修复缺陷", fixed_defects).add_yaxis("剩余未修复问题单", remaining_defects)# 设置全局选项,包括标题.set_global_opts(title_opts=opts.TitleOpts(title="缺陷趋势分析"),legend_opts=opts.LegendOpts(pos_top="48%"),))
# 添加执行用例数的数据
executed_cases = [150, 170, 195, 110, 86]# 创建 Bar 对象
bar = (Bar().add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"])
.add_yaxis("执行用例数", executed_cases))# 创建 Grid 对象,并添加 Line 和 Bar 图表
grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_bottom="60%")).add(line, grid_opts=opts.GridOpts(pos_top="60%")))# 渲染图表
grid.render()

将两张图重叠成一张图(overlap)

image

from pyecharts.charts import Line, Bar
from pyecharts import options as opts# 创建 Bar 对象
bar = Bar()
bar.add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"])# 添加执行用例数的数据
executed_cases = [15, 17, 19.5, 11, 3]
bar.add_yaxis("执行用例数(/百条)", executed_cases)# 创建 Line 对象
line = Line()
line.add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"])new_defects = [50, 35, 28, 20, 5]
fixed_defects = [5, 20, 30, 33, 40]remaining_defects = []
cumulative_new_defects = 0
cumulative_fixed_defects = 0for new, fixed in zip(new_defects, fixed_defects):cumulative_new_defects += newcumulative_fixed_defects += fixedremaining_defects.append(cumulative_new_defects - cumulative_fixed_defects)# 设置 is_smooth=True 参数使折线平滑显示
line.add_yaxis("新增缺陷", new_defects)
line.add_yaxis("已修复缺陷", fixed_defects)
line.add_yaxis("剩余未修复问题单", remaining_defects)# 使用 overlap() 方法将 Line 图表叠加到 Bar 图表中
bar.overlap(line)# 设置全局选项,包括标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="缺陷趋势分析"))# 渲染图表
bar.render()

将多张图组合在一个page 中(page)

image

from pyecharts.charts import Line, Bar, Page, Pie, Grid
from pyecharts import options as opts# 创建 Line 对象
new_defects = [50, 35, 28, 20, 5]
fixed_defects = [5, 20, 30, 33, 50]remaining_defects = []
cumulative_new_defects = 0
cumulative_fixed_defects = 0for new, fixed in zip(new_defects, fixed_defects):cumulative_new_defects += newcumulative_fixed_defects += fixedremaining_defects.append(cumulative_new_defects - cumulative_fixed_defects)line = (Line().add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"]).add_yaxis("新增缺陷", new_defects).add_yaxis("已修复缺陷", fixed_defects).add_yaxis("剩余未修复问题单", remaining_defects)# 设置全局选项,包括标题.set_global_opts(title_opts=opts.TitleOpts(title="趋势分析(缺陷/用例)"),legend_opts=opts.LegendOpts(pos_top="48%"),))
# 添加执行用例数的数据
executed_cases = [150, 170, 195, 110, 86]# 创建 Bar 对象
bar = (Bar().add_xaxis(["第一周", "第二周", "第三周", "第四周", "第五周"])
.add_yaxis("执行用例数", executed_cases))# 创建 Grid 对象,并添加 Line 和 Bar 图表
grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_bottom="60%")).add(line, grid_opts=opts.GridOpts(pos_top="60%")))# 渲染图表
grid.render()pie = Pie()
pie.add("", [("建议", 33), ("一般", 45), ("严重", 20), ("致命", 2)])
pie.set_global_opts(title_opts=opts.TitleOpts(title="缺陷严重级别统计"))
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
# 指定颜色
colors = ["#0000FF", "#4169E1", "#1E90FF", "#00BFFF"]
pie.set_colors(colors)# 创建 Page 对象,并添加图表
page = Page()
page.add(grid)
page.add(pie)# 渲染图表
page.render()

实际应用:常态化性能压测数据统计

image

import random
from pyecharts.charts import Line, Bar, Grid, Pie, Page
from pyecharts import options as opts
# 查询过去 8 次数据
time_range = 8interface = ['充值', '赠送', '支付', '支付回退', '预授权']
bar = (Bar().add_xaxis(interface).add_yaxis("支付", [113, 106, 122, 128, 128, 55, 45]).add_yaxis("券", [75, 46, 75, 65, 118, 15, 70]).add_yaxis("限额限频", [173, 146, 175, 165, 218, 115, 170]).add_yaxis("全流程", [65, 46, 70, 65, 108, 45, 40]).set_global_opts(title_opts=opts.TitleOpts(title="TPS(当前版本)"))
)
line = Line().add_xaxis([f"2023-07-0{i} 05:04:2{i}" for i in range(1, time_range)]). \add_yaxis(interface[0], [random.randint(100, 150) for _ in range(time_range)])for i, inter in enumerate(interface):line.add_yaxis(inter, [random.randint(10 * (i + 1), 100) for _ in range(time_range)],label_opts=opts.LabelOpts(is_show=False))
line.set_global_opts(title_opts=opts.TitleOpts(title="性能趋势(支付)", pos_top="48%"),legend_opts=opts.LegendOpts(pos_top="48%"),yaxis_opts=opts.AxisOpts(name="TPS",axislabel_opts=opts.LabelOpts(is_show=False),  # 设置label_opts参数)
)grid = Grid().add(bar, grid_opts=opts.GridOpts(pos_bottom="60%")).add(line, grid_opts=opts.GridOpts(pos_top="60%"))pie = Pie()
pie.add("-", [("已剔除", 2), ("梳理中", 2),  ("已完成",  15), ("优化中", 13), ("时间规划中", 13)])
pie.set_global_opts(title_opts=opts.TitleOpts(title="摸底系统统计"), )
# - `{a}`:表示系列名称。`{b}`:表示数据类别 `{c}`:表示数据值(如10、25、50和15)。`{d}`:表示数据所占的百分比。- `{@[index]}`:表示数据数组中索引为`index`的值。
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{a}{b}: {c} ({d}%)"))page = Page()
page.add(grid)
page.add(pie)
page.render()

总结

PyCharts 是一个功能强大、易于使用的 Python 数据可视化库。本文以测试工程师的日常工作中的一些数据举例,演示了如何展示测试数据,从而提高工作效率,更好地服务于项目进展。本文仅介绍了 PyCharts 的基本使用和一些常见的应用场景,实际上 PyCharts 还有更多的功能等待我们去探索。希望本文能对大家的工作带来帮助。


资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

相关文章:

【Python】数据可视化利器PyCharts在测试工作中的应用

目录 PyCharts 简介 PyCharts 的安装 缺陷统计 测试用例执行情况 使用JavaScript情况 缺陷趋势分析 将两张图放在一个组合里(grid) 将两张图重叠成一张图(overlap) 将多张图组合在一个page 中(page&#xff0…...

AOP的实战(统一功能处理模块)

一、用户登录权限效验 用户登录权限的发展从之前每个方法中自己验证用户登录权限,到现在统一的用户登录验证处理,它是一个逐渐完善和逐渐优化的过程。 1.1 最初用户登录验证 我们先来回顾一下最初用户登录验证的实现方法: RestController…...

时间复杂度为O(n2)的三种简单排序算法

1.冒泡排序 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少少一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序工作。 /*** …...

LeetCode 热题 100 JavaScript --226. 翻转二叉树

给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 3&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 提示&#xff1a; 树中节点数目范围在 [0, 100] 内 -100 < Node.val < 100 var invertTree function(root…...

hive所有窗口函数详情总结

hive窗口函数详情总结 解释语法hive开窗函数排序开窗函数样例数据RANK()DENSE_RANK()ROW_NUMBER() 分析开窗函数样例数据&#xff1a;last_valuefirst_valuelaglead 其他窗口函数cume_distpercent_rank 解释 开窗函数用于为行定义一个窗口&#xff08;指运算将要操作的行的集合…...

Talk | 新加坡国立大学博士生施宇钧:DragDiffusion-基于扩散模型的关键点拖拽图片编辑

本期为TechBeat人工智能社区第518期线上Talk&#xff01; 北京时间8月2日(周三)20:00&#xff0c; 新加坡国立大学博士生—施宇钧的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “DragDiffusion-基于扩散模型的关键点拖拽图片编辑”&#xff0c;他…...

22 | 贝叶斯分类算法

文章目录 介绍什么是贝叶斯分类算法?贝叶斯分类算法的应用场景贝叶斯定理贝叶斯定理的基本原理贝叶斯定理的公式推导贝叶斯定理的应用举例代码介绍 什么是贝叶斯分类算法? 贝叶斯分类算法是一类基于贝叶斯定理的分类技术。在统计分类任务中,这些算法使用特定的假设来建立特…...

java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效

问题&#xff1a; 在Select里采用Contact(%,#name,%)报错参数个数无效 原因&#xff1a; 回想以前用Mysql的时候就是这样用的&#xff0c;没有问题&#xff0c;在这里就出问题了&#xff0c;所以确定问题在oracle数据库上&#xff0c;经过查询得知&#xff0c;oracle和mysql…...

数据结构8-哈希表

数据结构8-哈希表 动态分配内存方式&#xff1a; #include <stdio.h> #include <stdlib.h>#define SIZE 20struct DataItem {int data; int key; };struct DataItem* hashArray[SIZE]; struct DataItem* dummyItem; struct DataItem* item;//获取键值 int has…...

vue3引用Font-Awesome字体图标库

环境&#xff1a;vue3tsviteelement plus 介绍&#xff1a;这里安装引用的是Font-Awesome 6.x 版本&#xff0c;有专业版&#xff08;付费&#xff09;&#xff0c;这里只介绍免费版字体使用方法 一、安装 1.使用npm安装&#xff0c;终端打开项目目录或者命令行cd到目录文件夹…...

Python: Django 服务部署可能遇到的一些问题

502 bad gateway 不要用 python3 manage.py runserver 启动服务&#xff0c; 而要用&#xff1a; daphne -b 0.0.0.0 -p <端口> <工程名>.asgi:application此外&#xff0c;在 setting.py 中&#xff0c;修改&#xff1a; import osSECRET_KEY os.environ.get(D…...

Python爬虫时遇到连接超时解决方案

在进行Python爬虫任务时&#xff0c;经常会遇到连接超时&#xff08;TimeoutError&#xff09;错误。连接超时意味着爬虫无法在规定的时间内建立与目标服务器的连接&#xff0c;导致请求失败。为了帮助您解决这个常见的问题&#xff0c;本文将提供一些解决办法&#xff0c;并提…...

这所国字头双一流,根本招不满,学硕都没人报!

一、学校及专业介绍 中国民航大学&#xff0c;位于天津市&#xff0c;是民航局、天津市、教育部共建高校&#xff0c;是天津市“双一流”建设高校和高水平特色大学建设高校。 1.1 招生情况 2023年中国民航大学电子信息与自动化学院&#xff0c;初试考806信号与系统的一共有两…...

macos 查询端口占用 命令

在 macOS 上查询端口占用的命令是通过使用lsof&#xff08;list open files&#xff09;工具来实现的。 lsof可以显示当前系统中打开的文件&#xff08;包括网络连接和端口&#xff09;的相关信息。 打开终端应用程序&#xff08;Terminal&#xff09;&#xff0c;然后输入以下…...

无代码开发:打破传统开发模式,引领数字化转型新方向

随着数字化转型的加速&#xff0c;企业对于高效、便捷的软件开发需求愈发旺盛。无代码开发作为一种新兴的软件开发模式&#xff0c;以其可视化、模块化的开发方式&#xff0c;为数字化转型提供了新的方向。本文将从无代码开发的优势、应用场景、如何实现等方面进行详细解读&…...

go-zero超强工具goctl的常用命令api,rpc,model及其构建的服务解析

goctl api 详情移步&#xff1a; go-zero的路由机制解析 基于go-zero的api服务刨析并对比与gin的区别 goctl rpc goctl支持多种rpc&#xff0c;较为流行的是google开源的grpc&#xff0c;这里主要介绍goctl rpc protoc的代码生成与使用。 protoc是grpc的命令&#xff0c;作用…...

手机python编程软件怎么用,手机python编程软件下载

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机python编程软件保存的代码在哪里&#xff0c;手机python编程软件怎么运行&#xff0c;现在让我们一起来看看吧&#xff01; 原标题&#xff1a;盘点几个在手机上可以用来学习编程的软件 前天在悟空问答的时候&#…...

【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

家居行业解决方案 | 君子签电子签约助力家居企业减负增效

过去&#xff0c;家居行业因供需两端碎片化、服务链条较长等因素&#xff0c;导致线上发展较为缓慢&#xff0c;近年来&#xff0c;互联网的发展推动直播电商、兴趣电商兴起&#xff0c;促使家居行业数字化建设需求越来越为迫切。 合同管理作为家居行业企业经营的一项重要管理…...

Nodejs 第五章(Npm run 原理)

npm run xxx 发生了什么 按照下面的例子npm run dev 举例过程中发生了什么 读取package json 的scripts 对应的脚本命令(dev:vite),vite是个可执行脚本&#xff0c;他的查找规则是&#xff1a; 先从当前项目的node_modules/.bin去查找可执行命令vite如果没找到就去全局的node…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...