meatball1982 发表于 2022-3-31 21:48:39

豆粑粑 matlab zoom 局部放大

本帖最后由 meatball1982 于 2022-4-1 09:59 编辑

这两天只画图了。
一个图,局部放大。
之前作过,但这次的要求是要画两条线,标注两个关键的点。在matlab 中,通过一个axes, 一个新的axes, 然后在第一个axes上 axis off实现。
麻烦是麻烦了些,但效果还不错。对数据的展示,有不错的效果。


两个不同的版本,分别对应的着框的小角和线的端点。
程序在附件,主要麻烦的地方在于把小图中点对应到大图中的作标中。


meatball1982 发表于 2022-4-1 09:57:34

更新一下,通过设置第二个图为透明,直接显示第一个图中的线。

效果同附件。

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]
查看完整版本: 豆粑粑 matlab zoom 局部放大