matlab绘制局部放大图

ZoomPlot是一个交互式的matlab局部绘图库,其github仓库地址为 https://github.com/iqiukp/ZoomPlot-MATLAB。在使用库之前需要先将库下载到本地,可以直接添加到matlab的库中,也可以放在项目文件中直接使用。

简单使用

其实使用这个库只需要项目文件中包含 BaseZoom.mparameters.json 这两个文件即可。

在使用时只需要两行代码

matlab 复制代码
clc;clear;close all;

t = 0:0.01:10;
y = sin(t);

figure(1)
plot(t,y)
xlabel('t')
ylabel('y')
% 只需要这两行代码就可以绘制局部放大图
zp = BaseZoom();
zp.plot;

如果我们需要的不止一个地区放大,只需要多加两行代码

复制代码
clc;clear;close all;

t = 0:0.01:10;
y = sin(t);

figure(1)
plot(t,y)
xlabel('t')
ylabel('y')
zp = BaseZoom();
zp.plot;
zp.plot;
zp.plot;

怎么确定框的位置呢,这就是交互式的好处,可以直接点击鼠标左键画出来,点击鼠标右键之后,画出来的框就不能再移动了,这算是一点小缺陷,然后就可以鼠标左键画第二个框,第二个框就是放大区域的框,画完两个框后,一次 zp.plot; 就结束了。

其网站上介绍的这个图也比较清晰明了

进行配置

可能上面黑色的框框并不是很符合我们的审美,所以可以配置 parameters.json 文件

共有四个部分可以配置

  • subAxes(子坐标系)
  • zoomedArea(放大区域)
  • dynamicRect(调整过程中的动态矩形)
  • connection(子坐标系和放大区域的连接线)

其中的配置就是一些颜色,线宽,线条类型,箭头之类的普通配置,这里不在详细介绍

但是使用这个库有一个问题就是不能在三维绘图中使用,三维绘图的支持也被坐着放在了TODO中,总而言之这个库还是非常优秀非常好用的,由于需求,我们下面介绍一种新的方法生成局部放大图。

直接使用matlab的图窗

其实这些功能matlab是直接定义好了的,我们以三维为例

matlab 复制代码
clc;clear;close all;

t = 0:0.01:10;
y = sin(t);
z = cos(t);

figure(1)
plot3(t,y,z)
xlabel('t')
ylabel('y')
zlabel('z')

复制一份(ctrl c,ctrl v)

缩小后移动到想要的位置

工具中选择放大,放大到我们想要的位置


查看中选择绘图编辑工具栏

就可以使用下面的线条和箭头画出所有的部分了,我画的有点稀烂

大概是这个意思

相关推荐
songgz1 小时前
洋葱式双向解析器演示(Ruby)
开发语言·后端·ruby
秋邱1 小时前
AR 应用流量增长与品牌 IP 打造:从被动接单到主动获客
开发语言·人工智能·后端·python·ar·restful
源代码•宸1 小时前
GoLang并发示例代码2(关于逻辑处理器运行顺序)
服务器·开发语言·经验分享·后端·golang
郑州光合科技余经理8 小时前
同城系统海外版:一站式多语种O2O系统源码
java·开发语言·git·mysql·uni-app·go·phpstorm
一只乔哇噻8 小时前
java后端工程师+AI大模型开发进修ing(研一版‖day60)
java·开发语言·人工智能·学习·语言模型
LNN20228 小时前
Linuxfb+Qt 输入设备踩坑记:解决 “节点存在却无法读取“ 问题
开发语言·qt
foxsen_xia9 小时前
go(基础06)——结构体取代类
开发语言·算法·golang
巨人张9 小时前
C++火柴人跑酷
开发语言·c++
ID_1800790547310 小时前
基于 Python 的 Cdiscount 商品详情 API 调用与 JSON 核心字段解析(含多规格 SKU 提取)
开发语言·python·json
悟能不能悟10 小时前
Caused by: java.sql.SQLException: ORA-28000: the account is locked怎么处理
java·开发语言