来源:MATLAB绘图—如何局部放大图_脑壳二的博客-CSDN博客_matlab局部放大图
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生产主图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
N=
20000;
-
i=
1:
1:N;
-
a=sqrt(
100)*randn(
1,N/
4);
-
b=randn(
1,N);
-
c=[a,b];
-
h1=plot(i,c(i),
':.m',
'LineWidth',
0.7);
-
legend(h1,
'signal')
-
xlabel(
't/s');ylabel(
'signal');
-
xlim([
0,
20000]); % 设置坐标轴范围
-
ylim([
-40,
80]);
-
title(
'signal')
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成局部放大图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
axes(
'Position',[
0.45,
0.55,
0.38,
0.28]); % 生成子图,第一个位置控制左右移动,第二个位置控制上下移动,第三个位置控制 宽窄
-
plot(i,c(i),
':.m',
'LineWidth',
0.7);
-
%%%%%%下面是给出需要放大的坐标位置%%%%%%%%%%%
-
xlim([
14000,
15000]); % 设置坐标轴范围
-
ylim([
140,
200]);
代码生成图
指定放大区
-
N=
20000;
-
i=
1:
1:N;
-
a=sqrt(
100)*randn(
1,N/
4);
-
b=randn(
1,N);
-
c=[a,b];
-
h1=plot(i,c(i),
':.m',
'LineWidth',
0.7);
-
xlabel(
't/s');ylabel(
'signal');
-
xlim([
0,
20000]); % 设置坐标轴范围
-
ylim([
-40,
80]);
-
title(
'signal')
-
-
%%%%%%%%%%%%%%%%%%%%画途中的两条绿线%%%%%%%
-
X1=
8200; Y1=
25;
-
X2=
14000;Y2=
5.5;
-
A=[X1,X2];B=[Y1,Y2];hold on;
-
h2=plot(A,B,
'-g',
'LineWidth',
1);
-
X1=
18100; Y1=
25;
-
X2=
15000;Y2=
5.5;
-
A=[X1,X2];B=[Y1,Y2];hold on;
-
h3=plot(A,B,
'-g',
'LineWidth',
1);
-
legend(h1,
'signal')%仅标注信号图
-
%%%%%%%%%%%绿线会直接结束%%%%%%%%%%%%%%
-
%%%%%%%%绘制放大图%%%%%%%%%
-
hold on;
-
axes(
'Position',[
0.45,
0.55,
0.38,
0.28]); % 生成子图 % 生成子图,第一个位置控制左右移动,第二个位置控制上下移动,第三个位置控制 宽窄
-
plot(i,c(i),
':.m',
'LineWidth',
0.7);
-
xlim([
14000,
15000]); % 设置坐标轴范围
-
% ylim([
140,
200]);
-
%%%%%%%%绘制放大图%%%%%%%%%
-
%%%%%%%%%%%%%%%%生成蓝色框%%%%%%%
-
annotation(
'rectangle',[
0.67,
0.34,
0.04,
0.08],
'LineStyle',
'-',
'Color',
'b',
'LineWidth',
0.7)
LineStyle 为线性 Color为颜色 LineWidth为线粗细
效果图:
我在实际操作的时候遇见了一些问题:
1、放大区的方框的位置和方框的大小不好确定,如果用坐标去确定,很麻烦,得调整左右,上下位置,直到把方框放在合适的位置。比如程序中调整方框位置的程序:
axes('Position',[0.45,0.55,0.38,0.28]); % 生成子图 % 生成子图,第一个位置控制左右移动,第二个位置控制上下移动,第三个位置控制 宽窄
我的解决办法:
首先,随便给方框坐标,先把方框画出来,然后利用Figure的编辑功能,拖动方框的大小及位置,然后通过属性检查器的功能确定方框的位置,然后把坐标填入到程序里。
需要确定的只是放大区位置,这个位置可以通过把鼠标放在图上就会自动显示出坐标位置,然后选择合适的坐标范围就可以了。对应的程序为 :
-
xlim([
14000,
15000]); % 设置坐标轴范围 ,用于说明放大哪个位置,即放大哪里
-
ylim([
140,
200]);
2、箭头哪里找?
Figure插入中有,插入箭头