How can I draw a frame around the inset plot?
조회 수: 7 (최근 30일)
이전 댓글 표시
How can I draw a frame around the inset plot?
x1 = linspace(0,1);
x2 = linspace(3/4,1);
y1 = sin(2*pi*x1);
y2 = sin(2*pi*x2);
figure(1)
% plot on large axes
plot(x1,y1)
% create smaller axes in top right, and plot on it
axes('Position',[.6 .6 .2 .2])
box on
plot(x2,y2)
My desired output is the following one:
댓글 수: 0
채택된 답변
Star Strider
2024년 9월 2일
x1 = linspace(0,1);
x2 = linspace(3/4,1);
y1 = sin(2*pi*x1);
y2 = sin(2*pi*x2);
figure(1)
% plot on large axes
plot(x1,y1)
Ax1 = gca;
pos1 = Ax1.Position;
% create smaller axes in top right, and plot on it
Ax2 = axes('Position',[.6 .6 .2 .2]);
box on
plot(x2,y2)
pos2 = Ax2.OuterPosition;
a2 = annotation('rectangle', pos2);
a2.Color = 'r';
a2.LineWidth = 2;
.
댓글 수: 7
추가 답변 (1개)
Jaimin
2024년 9월 2일
Hi @Sim
Based on the description, I understand that you want to add a frame around the inset plot in the figure, as shown below.
Below is the sample code to meet the requirement.
x1 = linspace(0,1);
x2 = linspace(3/4,1);
y1 = sin(2*pi*x1);
y2 = sin(2*pi*x2);
figure(1)
% Plot on large axes
plot(x1, y1)
% Create smaller axes in top right, and plot on it
inset_axes = axes('Position', [.6 .6 .2 .2]);
plot(x2, y2)
% Get the current position of the inset axes
pos = inset_axes.Position;
% Adjust the position to make the rectangle slightly larger
margin = 0.01; % Adjust this value to change the size of the margin
new_pos = [pos(1) - margin, pos(2) - margin, pos(3) + 2*margin, pos(4) + 2*margin];
% Add a red box around the inset plot
annotation('rectangle', new_pos, 'Color', 'r', 'LineWidth', 2);
Please refer this MathWorks Documentation to understand “annotation”
Annotation:
I hope this will be helpful.
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!