【Matplotlib】利用Python进行绘图!(python数据分析与可视化)
文章开始前打个小广告——分享一份Python学习大礼包(激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程)点击领取,100%免费!
【Matplotlib】
教程:https://morvanzhou.github.io/tutorials/data-manipulation/plt/
官方文档:https://matplotlib.org/api/pyplot_summary.html
这个模块是一个Python上用于进行绘图的模块。做科研的人经常会使用的matlab就是这个模块的一个竞品。就我个人而言,matplotlib感觉更像是一个echarts.js之类前端库的一个后端版本。和echarts一样,它可以支持通过python画出散点图,条状图,饼状图甚至是3D图和动画。
由于靠这个画图的话一般都会遇到比较复杂的数据处理,所以numpy也经常和matplotlib一起出现一起使用。
■ 基本安装和使用
在linux上安装可以通过包管理工具比如yum(我的虚拟机里面已经安装了matplotlib,但是已经忘了当时是用pip还是yum装的了…)
windows的话目测用pip也可以一步搞定。如果不行可以参考上面给出的参考文档连接。
下面是一个matplotlib的helloworld
import matplotlib.pyplot as plt
import numpy as npx \= np.linspace(-1,1,50)
y \= 2\*x + 1plt.figure()
plt.plot(x,y)
plt.show()
如果是在windows下的某个脚本中运行这段程序,那么完了之后会跳出一个窗口,显示一幅图片如图所示:

可以看到这个显示的图的组件本身还有一些功能比如跟随鼠标显示坐标值,放大局部图像等。
然后我们来看看这段代码。首先x是numpy中的一个array对象,其内容是-1到1之间均等地取了大约50个值。这些值其实就是我们图中后来的横坐标。然后通过array加减乘除时特别的性质,可以将类似于函数表达式那样的式子写在代码里。即2*x + 1,很接近函数表达式的y=2x+1了。那么y也是一个array,一一对应x中各个值进行2*x+1后的值。这样的一个array,x和array y,两个坐标集组成了一幅图。那么如何将这幅图显示出来,用到的就是后三行代码。
这里需要注意的是,绘制这个图的过程其实是用直线将各个点之间连接起来的操作。由于这个图最终本身就是一个直线,所以看起来似乎最初x的样本量取50个点和两个点结果都一样。但是如果表达式换成x**2 + 1那么取点多少就会影响到这个二次函数图是否光滑了。下面是分别取10个点和50个点时二次函数的图。
(10个点)
(50个点)
■ 图像(plot)的控制
● 线条的控制
上面代码中的plt.figure()方法声明的其实是一个figure窗口,即windows中弹出来的这个窗口。这个窗口中可以包含很多个图。上面只是添加了一个图。实际上还可以尝试添加更多。
一个图的概念其实在这里叫plot,正如你所见,plot方法用于向一个figure窗口中添加一个图。
x = np.linspace(-10,10,50)y1 \= 2\*x + 1
y2 \= x\*\*2plt.figure()
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()

因为出现了两个图,matplotlib自动为两个图设置了不同的颜色以示区分。如果想要自定义颜色,线条样式等等属性的话,可以将这些参数写在plot方法中比如:
plot(x,y,linestyle=‘dashed’,linewidth=0.5,color=‘#3479f7’) 其余更多参数以及参数如何取值可以参考https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot
● 坐标轴控制
上面的所有图中,坐标轴都是根据我们给出的数据范围自动生成的。如果想要手动指定坐标轴的范围呢
使用plt.xlim/ylim两个方法可以分别设置x轴和y轴的范围。用法就是xlim(min,max)。使用plt.xlabel和ylabel可以设置x/y轴的说明文字。使用plt.xticks/yticks两个方法可以分别设置X和Y轴的坐标点的值是多少。参数的话是numpy.linspace的返回值。
比如沿用上面用到的y1和y2,进行这样的代码画图:
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,linestyle\='dashed',linewidth=0.5,color='red',marker='.',)
plt.xlim(1,3)
plt.xlabel('value of X')
plt.xticks(np.linspace(1,3,11))
plt.show()

需要额外注意的一点是,加入xlim和xticks互相冲突了,那么最终显示的图是以后设置者为准。比如这里xticks再xlim后面设置,那么最终画出的图以xticks中定的范围为准。
除了简单的数值设置外,xticks/yticks还支持label设置。比如xticks([1,2,3,4],[‘bad’,‘ok’,‘good’,‘verygood’])这样的方式,来将数值坐标值和文字描述的坐标值一一对应起来。
plt.gca() 这个方法返回一个包含所有坐标轴的对象。gca的全称估计是get current axes,也就是获取到当前所有坐标轴。
其中比较重要的一条属性是spines,这个属性是一个字典,可以有left,right,top,bottom的取值分别对应一个图的四条边。比如令ax = plt.gca(),然后
ax.spines[‘top’].set_color(‘none’) 以及 ax[‘right’].set_color(‘none’) 这样子的话那么就可以让显示出来的图没有上边框和右边框。
除了set_color,还可以set_position。比如ax.spines[‘bottom’].set_position((‘data’,0)),首先bottom指的是X轴的那个边,把它set_position到data是0,即Y轴的值为0的高度。类似的将left也设置一下。然后将top和right设置不可见之后,这样就得到一个经典的坐标系的图了。
上面说的是plt.gca().spines这个属性。其实gca返回的对象中还有一些属性比如xaxis/yaxis这两个就是坐标轴的对象(spines的本意是脊柱、干,所以指的更多是构成坐标轴的那条线。而xaxis这种很明显就是指坐标轴本身,指的更多是坐标轴的数字、文字标签的部分。)
同样的,令 ax = plt.gca() 的话,ax.xaxis就是X轴对象,可以有下列方法:
ax.xaxis.set_ticks_position(‘top’) 可以设置X轴的数字和坐标点出现在图的哪条边上。如果是top就是出现在上边。如果配合spines[‘top’].set_color(‘none’)的话,那么就可以得到只有数据标点(且在图上方位置),没有轴线的图了。
● 图例
在上面画两条线的方法plot中,还可以添加一个参数label,用来通过文字说明这条线的内容。有了这个label之后就可以将其关联到图例上。这样图例就可以显示说明。
关联图例的方法是plt.legend,不过需要注意的是legend方法一定要在plot完成之后调用,否则将无法呈现图例(这其实呼应了之前xlim和xticks取值的后设置后决定,这强调了plt对于图像绘制是线性执行的特点)。比如如下代码:
plt.figure()
plt.plot(x,y1,label\='straight line')
plt.plot(x,y2,linestyle\='dashed',linewidth=0.5,color='red',marker='.',label='square line')
plt.legend()
plt.ylim(\-1,4)
plt.xlim(\-3,3)
ax \= plt.gca()
ax.spines\['top'\].set\_color('none')
ax.spines\['right'\].set\_color('none')
ax.spines\['left'\].set\_position(('data',0))
ax.spines\['bottom'\].set\_position(('data',0))
plt.show()

图例出现的位置默认是在左下方,可以在legend方法中用loc参数指明具体的位置。比如plt.legend(loc=‘upper right’)是出现在右上角。类似的参数值还有lower right,center left等等。此外还有一个best,这个值是说把位置自动交给电脑去判断,尽量选择一个不挡住任何东西的好的位置。
● 划线标点 标注
上面说过,plot方法其实是将给出的参数分别解释为X坐标和Y坐标的集合,然后一一将这些点用直线连接起来组成的图形。那么要在图上额外画一条线段就不难了。
比如plt.plot([1,1],[0,2],linestyle=‘dashed’)这个画的线段就是(1,0)点和(1,2)点之间的连线,就是一条垂直于X轴的线。
至于标点,其实用的是用来做散点图的plt.scatter方法。由于散点图后面还会详细说这里就不多说了。这里只给出一个调用方法:
plt.scatter([1,],[2,],s=20,color=‘blue’)
除了标点,另外一个重要的标注就是文字标注了。文字标注大概可以通过这样的方法来实现:
plt.annotate(‘emphasize point’,xy=(1,3),xytext=(15,-15),textcoords=‘offset pixels’,arrowprops=dict(arrowstyle=‘<|-’, connectionstyle=“arc3,rad=.2”))
emphasize point是描述文字。xy则是本条标注针对的图中的点。xytext配合textcoords指出的定位方式,指出了标注文字应该放在什么地方,如果按照上面的这种组合的话,就是说文字的左上角点是标注点的右下方各15个像素的地方。arrowprops参数比较有意思,它指出了是否需要一个标注文字和标注点之间的箭头标识。arrowstyle可以有<-,<|-,->,-|>,是不是很形象? 当箭头指向左边的意思是,图上的箭头是从标注点指向标注文字的,向右则相反。connectionstyle是一个完整的字符串,不过它也有很多信息,比如rad指出了箭头线的弧度。
以上是对于针对某个点的标注文字,如没有特定的目标点,只是想写点文字的话可以使用plt.text方法
plt.text(-2.4, 6, ‘This is some text’,fontdict={‘size’: 16, ‘color’: ‘r’})
这个方法中(-2.4,6)这个点是文字左上角的坐标,fontdict指定一个指定字体格式的字典。比较好懂就不说了。
总结上面说到的一些东西再给一个示例:
plt.figure()
plt.plot(x,y1,label\='straight line')
plt.plot(x\[:35\],y2\[:35\],linestyle='dashed',linewidth=0.5,color='red',label='square line')
plt.plot(\[1,1\],\[0,3\],'k--')
plt.scatter(\[1,\],\[3,\],s=20,color='blue')
plt.annotate('emphasize point',xy=(1,3),xytext=(15,-15),textcoords='offset pixels',arrowprops=dict(arrowstyle='<|-', connectionstyle="arc3,rad=.2"))
plt.text(\-2.4, 6, 'This is some text',fontdict={'size': 16, 'color': 'r'})
plt.legend(loc\='best')
ax \= plt.gca()
ax.spines\['top'\].set\_color('none')
ax.spines\['right'\].set\_color('none')
ax.spines\['left'\].set\_position(('data',0))
ax.spines\['bottom'\].set\_position(('data',0))
plt.show()
View Code

■ 分图类型示例
● 散点图
n = 1024 # data size
X = np.random.normal(0, 1, n) # 每一个点的X值
Y = np.random.normal(0, 1, n) # 每一个点的Y值
T = np.arctan2(Y,X) # for color value
plt.figure()
ax \= plt.gca()
ax.spines\['bottom'\].set\_position(('data',0))
ax.spines\['left'\].set\_position(('data',0))
ax.spines\['top'\].set\_color('none')
ax.spines\['right'\].set\_color('none')
plt.scatter(X,Y,c\=T,s=20)
plt.xlim(\-0.5,0.5)
plt.show()
np.random.normal方法是生成一个平均值为0,方差为1,总数为1024的数据集。这样两个数据集分别作为X坐标和Y坐标构成了1024个点的集合。再通过调用arctan2将所有随机点对应的一个弧度求出,把这个弧度当做是一个颜色的替代值。
随后就是生成图形的过程,对于gca返回的处理部分是把上右边去掉,下左边移到中间形成坐标系的图。然后scatter方法一次性将所有的点画到图上。X是横坐标的array,Y是纵坐标的array,c是color指定颜色的值,s是每个点的size。最后为了方便看(由于散点图在X和Y轴上都符合正则分布,导致原点附近的点特别密集,如果scale比较大中间就是一片糊),limit一下X轴的坐标。
最终看到的图形是这样的:

● 其他图种,都是依葫芦画瓢的事,就不多说了,可以网上随便搜一个看一看就行了。
■ 多图合一显示
上面的所有实例中,plt.figure()得到的窗口对象里面都只显示了一幅图,图种可能有多条线。
如果要多张图显示在同一个窗口中,那么需要用到plt.subplot这个方法。这个方法的调用方式通常是这样的:
plt.subplot(2,2,1)或者plt.subplot(221)。221的意思是,如果将整个窗口分隔成2*2格式的话,那么现在切换plt到从左到右从上至下第1个网格内进行编辑。直到再次调用subplot切换网格之前,plt做的所有操作都会这个网格内进行。
matplotlib严格按照代码中画图的顺序来画图,如果后来画的图和前面的图有重叠,那么前面的图就会被整个删除,接下来界面上就会只剩下后来画的图了。
另外subplot并不要求前后调用的几次都是统一规格网格的图,比如下面这段代码显示出的图是这样的:
def dicars(plt):ax \= plt.gca()ax.spines\['top'\].set\_color('none')ax.spines\['right'\].set\_color('none')ax.spines\['left'\].set\_position(('data',0))ax.spines\['bottom'\].set\_position(('data',0))plt.figure()
# 第一幅图
plt.subplot(221)
plt.plot(\[1,1\],\[0,1\])
dicars(plt)
# 第二幅图
plt.subplot(222)
plt.plot(\[2,2\],\[0,1\])
dicars(plt)
# 第三幅图
plt.subplot(212)
plt.plot(\[3,3\],\[0,1\])
dicars(plt)plt.show()

另外进行画图的布局还可以用grid方式的流式布局。参考https://morvanzhou.github.io/tutorials/data-manipulation/plt/4-2-subplot2/
多图布局除了同一窗口多个图外,还可以有图中图这种模式化,也可以参考上面链接中的教程。
■ 多坐标轴显示
多坐标轴也是一种常见的需求。常见的就是需要在相对小的区域分显示两个值域出入比较大的函数的时候,即多坐标轴多指多Y轴的情况。
matplotlib实现多坐标轴的代码如下:
import matplotlib.pyplot as plt
import numpy as np
import math
x \= np.arange(-2,2,0.1)
y1 \= map(math.exp,x)
y2 \= -1 \* np.array(y1)fig, left\_ax \= plt.subplots() # 获取当前的坐标,是第二个返回对象
right\_ax = left\_ax.twinx() # twinx生成另一个坐标对象
left\_ax.plot(x,y1,color='blue')
left\_ax.set\_ylabel('value of Y1',color='blue')
right\_ax.plot(x,y2,color\='green')
right\_ax.set\_ylabel('value of Y2',color='green')
plt.show()
生成图:

关于Python技能储备!
如果你是准备学习Python或者正在学习(想通过Python兼职),下面这些你应该能用得上:
【点击这里】领取!
包括:激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习
⑤ 历年互联网企业Python面试真题,复习时非常方便****


以上就是本次分享的全部内容。我们下期见~
相关文章:
【Matplotlib】利用Python进行绘图!(python数据分析与可视化)
文章开始前打个小广告——分享一份Python学习大礼包(激活码安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程)点击领取,100%免费! 【Matplotlib】 教程&…...
第二百二十节 JPA教程 - JPA 实体管理器删除示例
JPA教程 - JPA 实体管理器删除示例 我们可以使用JPA中的EntityManager来删除一个实体。 在下面的代码中,我们首先通过使用EntityManager中的find方法从数据库获取person对象,然后调用remove方法并传递person对象引用。 Person emp em.find(Person.cla…...
[TypeError] {message: “Cannot read property ‘‘ of undefined“}
11:11:25.500 [TypeError] {message: “Cannot read property ‘’ of undefined”} 11:11:25.586 [Vue warn]: Unhandled error during execution of render function \n at \nat \nat \nat \nat \nat \nat <V uniapp 使用报错 解决方法 页面加 v-if 来判断这个字…...
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001
由于需要对NFI进行汉化,以及二次开发,首先要下载源码以后编辑通过,NIFI的源码,项目非常多,编译过程中需要编译超过570个jar包,同时编译过程很慢需要30多分钟. 1.首先下载NIFI源码,根据需要下载对应版本: https://github.com/kemixkoo/orchsym-runtime/ 首先介绍一下,这个是一…...
项目在运行时,浏览器控制台出现 Uncaught ReferenceError: globalThis is not defined
项目场景: 背景: 项目在运行时,QQ浏览器控制台出现 Uncaught ReferenceError: globalThis is not defined … 错误信息 问题描述 问题: 错误信息如下所示: Uncaught ReferenceError: globalThis is not definedat r…...
图中点的层次
给定一个 nn 个点 mm 条边的有向图,图中可能存在重边和自环。 所有边的长度都是 11,点的编号为 1∼n1∼n。 请你求出 11 号点到 nn 号点的最短距离,如果从 11 号点无法走到 nn 号点,输出 −1−1。 输入格式 第一行包含两个整数…...
ansible+awx搭建
1、环境介绍 操作系统版本:龙蜥os 8.9 docker 版本:26.0.2 python版本:3.11.9 ansible版本:2.16.6 awx版本:24.2.0 2、安装docker 设置软件源 yum install -y yum-utilsyum-config-manager \--add-repo \https://mirr…...
linux环境下安装配置go环境
概述 摘要: 本文介绍在linux环境下,安装go环境的方法 安装步骤 1,下载go安装包 根据需要下载linux环境下的go版本包,本文以go1.17.3版本为例 wget https://storage.googleapis.com/golang/go1.17.3.linux-amd64.tar.gz 2,解压 …...
可交互、会学习、自成长机器人——李德毅院士
在以“农业无人农场”为主题的中国工程科技论坛上,中国工程院院士、欧亚科学院院士、中国人工智能学会和中国指挥与控制学会名誉理事长,中科原动力首席科学家李德毅院士应邀做题为《机器具身交互智能》的演讲。李德毅院士表示,智能机器不但把…...
Redis发布订阅PUB/SUB
Redis发布订阅PUB/SUB是一种消息通信模式,发送者PUB发送消息,订阅者SUB接收消息。Redis客户端可以订阅任意数量的频道,一个通道CHANNEL可以被多个客户端订阅,当一条消息发送到CHANNEL中去后所有订阅的客户端都会接收到此消息。 一…...
Scratch教师节 —— 感恩教师节
小虎鲸Scratch资源站-免费Scratch作品源码,素材,教程分享平台! Scratch教师节动画作品——感恩教师节 在这个特别的日子里,我们迎来了教师节。为了表达对老师们的感激之情,Scratch平台上的小朋友们用创意与热情制作了精彩的动画作品——“感恩教师节”。…...
【60天备战软考高级系统架构设计师——第五天:需求分析方法与工具】
在完成了需求获取的初步工作后,今天我们将专注于需求分析的方法与工具。需求分析是将需求转化为可实现系统的关键步骤,直接影响到系统的最终效果。 需求分析方法 用例分析 用例分析通过描述用户与系统的交互行为,明确系统需要实现的功能。用…...
【Hot100算法刷题集】哈希-01-两数之和(暴力枚举再优化,也不是哈希表的对手)
🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目 🎯每日努力一点点,技术变化看得见 题目转载 题目描述 🔒link->题目跳转链接 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中…...
基于.NET6的WPF基础总结(上)
目录 一.常用属性介绍 二、 程序退出方式 三、布局样式 3.1 Panel的附加属性ZIndex 3.2 Grid(网格)布局 3.3 UniformGrid(均分布局) 3.4 StackPanel(堆积面板) 3.5 WrapPanel(换行面板) 3.6 Doc…...
Nuxt3入门:资源文件(第2节)
你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。 Nuxt 为资源存放提供两种选择。可以使用两个目录(public/assets)来处理样式表、字体或图像等资源。 public/ 此目录中的文件将按原样复制到服务器根目录中。assets/ 此目录中的…...
企业微信中嵌套的h5应用调用微信扫码功能
企业微信官方文档 1.登录企业微信后台,管理员可操作,打开应用配置应用可信域名(必须配置,否则无法调用jsapi,可信域名必须有ICP备案且在管理端验证域名归属) 配置部署后的前台域名地址 配置可信域名,部署后的服务器域名(需备案认证) 当域名权限不够时需下载文件效验,将文件放…...
Excel如何把表格变成图表
Excel如何把表格变成图表 将Excel表格转换为图表的过程相对简单且直观,主要步骤包括准备数据、插入图表、设置图表格式等。 以下是详细的步骤说明: 准备数据:首先,在Excel表格中输入或准备好要创建图表的数据。这些数据可…...
HTTP 三、http在springboot中得应用
一、springboot处理http请求的过程 1、客户端发起HTTP请求,经过网络传输到服务器 HTTP请求通常由浏览器、Postman、curl或其他HTTP客户端发起,客户端的HTTP请求通过网络(通常是TCP/IP协议)传输到服务器,这个请求首先会…...
Java秋招面经(网搜版)
1.redis的数据结构 Redis 提供了多种高效的数据结构来满足不同的应用需求。主要包括字符串(String),这是最基础的数据类型,支持存储和操作各种数据;哈希(Hash),类似于键值对的集合&…...
【Android】Material Design编写更好的UI
Toolbar 对于控件ActionBar我们非常熟悉,就是我们常见的标题栏,但ActionBar只能位于活动的顶部,因此我们更建议使用Toolbar。在新建一个项目的时候都是默认显示ActionBar,我们要使用Toolbar就需要先将标题栏改为不显示 先来看看…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
