豆粑粑 matlab zoom 局部放大
本帖最后由 meatball1982 于 2022-4-1 09:59 编辑这两天只画图了。
一个图,局部放大。
之前作过,但这次的要求是要画两条线,标注两个关键的点。在matlab 中,通过一个axes, 一个新的axes, 然后在第一个axes上 axis off实现。
麻烦是麻烦了些,但效果还不错。对数据的展示,有不错的效果。
两个不同的版本,分别对应的着框的小角和线的端点。
程序在附件,主要麻烦的地方在于把小图中点对应到大图中的作标中。
更新一下,通过设置第二个图为透明,直接显示第一个图中的线。
效果同附件。
clear all
clc
clf
%% outline
% zoom in with line cross different axis
%% main
x=linspace(0,3*pi,1000);
rnd = rand(size(x));
y=x+exp(sin(2*x))+exp(x./3)+exp(x).*rnd/100;
seedm(3)
zoom =
pos1 = ;
pos2 = ;
% find line1 ends
tm = x-zoom(1);
= min(abs(tm));
tm = x-zoom(2);
= min(abs(tm));
h=figure(1)
set(h, 'Position', );
ax11=axes('position',pos1);
hold on
plot(x,y,'.-')
axis()
set(gca,'fontsize',14,'linewidth',2)
% % % line : from corner to corner -----------------------------------------
% lin1_x = ;
% lin1_y = ;
% lin2_x = ;
% lin2_y = ;
% % line : from line to line -----------------------------------------
lin1_x = ;
lin1_y = ;
lin2_x = ;
lin2_y = ;
plot(lin1_x,lin1_y,'r-','linewidth',2)
plot(lin2_x,lin2_y,'g-','linewidth',2)
axis()
% axis off
box on
rectangle('Position',,'linewidth',2)
ax11=axes('position',pos2);
plot(x,y,'.-','linewidth',2,'markersize',12)
axis(zoom)
set(gca,'linewidth',2)
set(gcf, 'Color','none')
set(gca,'color','none')
% ax11=axes('position',pos1);
% hold on
% plot(lin1_x,lin1_y,'r-','linewidth',2)
% plot(lin2_x,lin2_y,'g-','linewidth',2)
% axis()
% axis off
页:
[1]