标题MATLAB绘图—如何局部放大图
原创不易,路过的各位大佬请点个赞
MATLAB基础代码/优化技术探讨:WX: ZB
直接上代码,先
仅局部放大绘图
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]);
信号a为高斯白噪声(方差为100),信号b也为高斯白噪声(方差为1)
axes(‘Position’,[0.45,0.55,0.38,0.28]); % 分别表示放大图的 [ 水平位置,垂直位置,水平大小(长), 竖直大小(宽)]
axes函数后的具体参数说明,以横纵坐标量程为基准:
例中0.18为子图左下角的归一化横坐标位置:
(该位置的横坐标-横坐标起始值)/横坐标量程=0.45,
同理,0.62为子图左下角的归一化纵坐标位置:
(该位置的纵坐标-纵坐标起始值)/纵坐标量程=0.55,
注释局部放大图
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为线粗细
原创不易,路过的各位大佬请点个赞
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228939.html原文链接:https://javaforall.net
