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

【matlab】如何提取论文plot图中的数据

用origin太麻烦了,还得安装付费插件,得到的数据的导出过程还麻烦,这里给出matlab的处理方法

参考链接1:matlab读取论文图中数据
参考链接2:【Matlab】Curve Fitting Tool的使用方式(拟合函数、导出函数、调用函数)
参考链接3:【matlab】矩阵按某列排序且不改变行

代码:

%https://blog.csdn.net/JISANSAN/article/details/106722830?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-106722830-blog-150155985.235^v43^pc_blog_bottom_relevance_base4&spm=1001.2101.3001.4242.2&utm_relevant_index=5clc clear close all%% 1.图片与曲线间的定标im=imread('figure4.png');%读入图片(替换成需要提取曲线的图片)im=rgb2gray(im);%灰度变化thresh=graythresh(im)/10+0.9;%二值化阈值,设大一些,防止一些浅色线读取不到im=im2bw(im,thresh);%二值化set(0,'defaultfigurecolor','w')imshow(im)%显示图片[y,x]=find(im==0);%找出图形中的“黑点”的坐标。该坐标是一维数据。y=max(y)-y;%将屏幕坐标转换为右手系笛卡尔坐标y=fliplr(y);%fliplr()——左右翻转数组plot(x,y,'r.','Markersize',2);disp('请在Figrure中先后点击实际坐标框的两个顶点(左上点和右下点),即A、B两点. ');[Xx,Yy]=ginput(2);%Xx,Yy——指实际坐标框的两个顶点min_x=input('最小的x值');%输入x轴最小值max_x=input('最大的x值');%输入x轴最大值min_y=input('最小的y值');%输入y轴最小值max_y=input('最大的y值');%输入y轴最大值x=(x-Xx(1))*(max_x-min_x)/(Xx(2)-Xx(1))+min_x;y=(y-Yy(1))*(min_y-max_y)/(Yy(2)-Yy(1))+max_y;%% 2.画图figure(1)plot(x,y,'r.','Markersize',2);axis([min_x,max_x,min_y,max_y])%根据输入设置坐标范围title('由原图片得到的未处理散点图')% 使用getpts函数选择点[x_get_1,y_get_1]=getpts;% 选中的点的坐标[x_get_2,y_get_2]=getpts;% 选中的点的坐标%% 3.绘制提取数的据figure(101)plot(x_get_1,y_get_1,'r-','Markersize',2,'LineWidth',3)xlabel('x')ylabel('y')title('手动提取的散点图(曲线1)')figure(102)plot(x_get_2,y_get_2,'b-','Markersize',2,'LineWidth',3)xlabel('x')ylabel('y')title('手动提取的散点图(曲线2)')

流程:
(1)运行代码
(2)在弹出的Figrure图框中先后点击实际坐标框的两个顶点(左上点和右下点)

(3)输入实际坐标框的坐标范围(图例为-12、12、-1200、1200)后即可使原图与matlab的figure坐标框对齐

(4)在figure坐标框中拾取点,点得按照曲线取,越密越好,拾取完毕后敲“enter键”即可绘制对应的数据图(示例中包含两种曲线,需要拾取两次)
拾取散点图1:

拾取散点图2:
效果:

提取数据可以采用拟合的方法提升平滑性或者得到拟合函数,链接:【Matlab】Curve Fitting Tool的使用方式(拟合函数、导出函数、调用函数)

对比原图:

精确的扒图做不到,但是可以描述其数量、形状

http://www.jsqmd.com/news/491010/

相关文章:

  • 操作HTML网页
  • OpenHarmony Linux 命令行工具适配实战:基于 Cursor × WSL 的 tree 2.2.1 交叉编译与 HNP 打包全流程指南
  • 【微信小程序 + 登录流程】微信小程序授权登录完整流程,一篇搞定!(含代码实现)
  • 终极指南:bootstrap-datepicker版本迁移中的API变更与适配技巧
  • 梳理靠谱的PLC编程学习机构,自学与机器人控制编程怎么收费 - 工业设备
  • 解决SegmentTabLayout的setTabSpaceEqual属性使用误区:从源码到实战的全面解析
  • Linux 进程控制(二) (进程等待wait/waitpid)
  • 如何在5分钟内快速部署Cnblogs-Theme-SimpleMemory主题?新手必备指南
  • nginx-rtmp-module高级配置:直播录制、转码与HTTP回调实战指南
  • CPPM注册职业采购经理证书详解 - 众智商学院官方
  • DeOldify开源大模型部署教程:国产昇腾/寒武纪平台适配可行性分析
  • 利群金卡回收五种精选方法:告别闲置,让消费更自由 - 猎卡回收公众号
  • 华为OD机试双机位C卷-编程能力提升计划 (Py/Java/C/C++/Js/Go)
  • 【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)
  • 闲置微信立减金别扔!可可收专业平台一键回收,安全高效超省心 - 可可收
  • 一级减速器2.2KW
  • MusePublic开源镜像案例:美术馆用AI复原残损壁画的实践路径
  • 华为OD机试双机位C卷-AI面板识别(Py/Java/C/C++/Js/Go)
  • MusePublic Art Studio效果展示:低光照场景下细节保留能力实测
  • java里内存、GC、性能调优的常用方法
  • 乙巳马年春联生成终端企业级落地:API封装+品牌LOGO嵌入实操手册
  • Janus-Pro-7B快速上手:无需GPU环境也能跑通的开源多模态模型
  • VideoAgentTrek-ScreenFilter多场景落地:UI测试、内容审核、无障碍适配三合一
  • python组合数据类型之元组类型字典类型实例
  • 聚合万媒,智链未来:软盟发稿平台打造2026企业对外传播“超级枢纽” - 新闻快传
  • 开源轻量影像工具:Jimeng AI Studio (Z-Image Edition)镜像免配置部署指南
  • GLM-4.7-Flash行业落地:金融研报自动生成与关键信息抽取实战
  • Jmeter接口测试实战:接口加密、接口解密、签名sign接口实战
  • EVA-01实战教程:构建企业内部知识库视觉检索终端——EVA-01+向量数据库集成
  • 工业组态 × 数据大屏 × ThingsBoard:SceneV 数据大屏可视化