matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)

当需要展示图形中的局部时,可以在同一张图形中绘制局部放大的图形,展示图形的局部细节。今天主要以实际的例子讲解MATLAB实现绘制局部放大图利用了axes函数生成多个坐标图。


1.axes函数

axes函数创建笛卡尔坐标区

语法

axes axes(Name,Value) axes(parent,Name,Value) ax=axes(___) axes(cax) 说明 axes 在当前图窗中创建默认的笛卡尔坐标区,并将其设置为当前坐标区。通常情况下,您不需要在绘图 之前创建坐标区,因为如果不存在坐标区,图形函数会在绘图时自动创建坐标区。 axes(Name,Value) 使用一个或多个名称-值对组参数修改坐标区的外观,或控制数据的显示方式。 例如,'FontSize',14 可设置坐标区文本的字体大小。有关属性列表,请参阅 Axes 属性。 axes(parent,Name,Value) 在由 parent 指定的图窗、面板或选项卡中创建坐标区,而不是在当前 图窗中创建。 ax=axes(___) 返回创建的 Axes 对象。可在创建 Axes 对象后使用 ax 查询和修改对象属性。 有关属性列表,请参阅 Axes 属性。 axes(cax) 将 cax 指定的坐标区或图设置为当前坐标区,并使父图窗成为焦点。此命令还将 cax 设置为图窗的 Children 属性中列出的第一个对象,并将图窗的 CurrentAxes 属性设置为 cax。


2.在图窗中定位多个坐标区

程序

clc; clear all; close all; %在图窗中放置两个 Axes 对象,并为每个对象添加一个绘图。 % 指定第一个 Axes 对象的位置,使其左下角位于点 (0.1 0.1) 处,宽度和高度均为 0.7。 % 指定第二个 Axes 对象的位置,使其左下角位于点 (0.65 0.65) 处,宽度和高度均为 0.28。 % 默认情况下,所有值为基于图窗的归一化值。将这两个 Axes 对象返回为 ax1 和 ax2。 figure ax1 = axes('Position',[0.1 0.1 0.7 0.7]); ax2 = axes('Position',[0.65 0.65 0.28 0.28]);

运行结果

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(1)

程序

clc; clear all; close all; %在图窗中放置两个 Axes 对象,并为每个对象添加一个绘图。 % 指定第一个 Axes 对象的位置,使其左下角位于点 (0.1 0.1) 处,宽度和高度均为 0.7。 % 指定第二个 Axes 对象的位置,使其左下角位于点 (0.65 0.65) 处,宽度和高度均为 0.28。 % 默认情况下,所有值为基于图窗的归一化值。将这两个 Axes 对象返回为 ax1 和 ax2。 figure ax1 = axes('Position',[0.1 0.1 0.7 0.7]); ax2 = axes('Position',[0.65 0.65 0.28 0.28]); % 在每个 Axes 对象上添加一个绘图。 % 通过将坐标区作为第一个输入参数传递给图形函数来指定坐标区。 % 大多数图形函数会重置某些坐标区属性,如刻度值和标签。但是,它们不会重置坐标区的位置。 contour(ax1,peaks(20)) surf(ax2,peaks(20))

运行结果

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(2)


3.将坐标区设置为当前坐标区

程序

clc; clear all; close all; % 创建两个重叠的 Axes 对象。然后指定当前坐标区并添加一个绘图。 % 首先创建两个 Axes 对象并指定它们的位置。 % 在每个坐标区周围显示框轮廓。将这两个 Axes 对象返回为 ax1 和 ax2。 figure ax1 = axes('Position',[0.1 0.1 .6 .6],'Box','on'); ax2 = axes('Position',[.35 .35 .6 .6],'Box','on'); %将 ax1 设置为当前坐标区。此操作将使该坐标区显示在最前面,并使其成为后续图形函数的目标。在坐标区上添加一个线图。 axes(ax1) x = linspace(0,10); y = sin(x); plot(x,y,'r--') axes(ax2) y = cos(x); plot(x,y,'b-')

运行结果

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(3)


4.在选项卡上创建坐标区

程序

clc; clear all; close all; % 创建包含两个选项卡的图窗。 % 通过为每个选项卡指定父容器,将坐标区添加到每个选项卡上。 % 在第一个选项卡中绘制曲线,在第二个选项卡中绘制一个曲面。 figure tab1 = uitab('Title','Tab1'); ax1 = axes(tab1); x = linspace(0,10); y = sin(x); plot(ax1,x,y,'g-^ ') grid on; tab2 = uitab('Title','Tab2'); ax2 = axes(tab2); surf(ax2,peaks) grid on;

运行结果

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(4)

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(5)


5.实例1

程序

clc; clear all; close all; x = -5:0.01:5; f =exp(-2.*x).*sin(x); figure1 = gcf; ax1 = axes('Position', [0.1 0.1 0.8 0.8]); %%'Position', [0.1 0.1 0.8 0.8] %第1个参数表示图坐标区域左下角至图形窗口左边的占比 %第2个参数表示图坐标区域左下角至图形窗口下边的占比 %第3个参数表示图坐标区域的宽占比 %第4个参数表示图坐标区域的高占比 ax2 = axes('Position',[0.5 0.5 0.3 0.3]); axes(ax1) %大窗口绘图 plot(x,f,'r-','lineWidth',2); xlabel('$$ x $$', 'interpreter', 'latex') ylabel('$$ f(x) $$', 'interpreter', 'latex') title('局部放大图', 'fontsize', 12) grid on x11 = [0.45, 0.3]; y11 = [0.45, 0.3]; annotation('arrow',x11, y11); axes(ax2) %小窗口绘图 x1 = -4:0.01:-3; f1 =exp(-2.*x1).*sin(x1); p1 = plot(x1,f1); p1.LineWidth = 2; p1.Color = 'g'; xlabel('$$ x $$', 'interpreter', 'latex') ylabel('$$ f(x) $$', 'interpreter', 'latex') grid on

运行结果

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(6)


6.实例2

程序

clc; clear; close all; x=linspace(-2*pi,2*pi,100);% 生成曲线的x x1=linspace(pi/6,pi/3,100); % 生成曲线的局部x y=sin(x)-1; y1=cos(x)-1; y2=sin(x1); y3=cos(x1); figure;% 生成新的图形窗口 plot(x,y,'r-*'); hold on; plot(x,y1,'b-*'); axis('equal'); % 绘制整体曲线图 ylim([-3 3]); xlabel('x'); ylabel('y'); grid on; axes('Position',[0.18,0.62,0.28,0.25]); % 生成子图 plot(x1,y2,'r-*'); hold on; plot(x1,y3,'b-*'); xlim([min(x1),max(x1)]); % 设置坐标轴范围 xlabel('x'); ylabel('y'); grid on;

运行结果

matlab怎么设置局部放大图大小(MATLAB绘制局部放大图)(7)

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页