How can I draw a frame around the inset plot?
5 次查看(过去 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!