A border/per​imeter/rec​tangle around the inset plot, in a subplot environment

조회 수: 15 (최근 30일)
Sim
Sim 2024년 6월 26일
댓글: Sim 2024년 6월 26일
In the following subplot environment, how can I draw a red border/perimeter/rectangle around/wrapping the inset plot?
fig = figure;
for i = 1 : 6
subplot(3,2,i)
scatter(rand(1,10),rand(1,10))
end
axes(fig,'Position',[.1 .2 .2 .2])
plot(1:5,rand(1,5))

채택된 답변

Voss
Voss 2024년 6월 26일
Here are a couple of options:
fig = figure;
for i = 1 : 6
subplot(3,2,i)
scatter(rand(1,10),rand(1,10))
end
ax = axes(fig, ...
'Position',[0.02 0.12 0.29 0.29], ...
'Visible','off', ...
'ClippingStyle','rectangle', ...
'XLim',[-0.01 1.01], ...
'YLim',[-0.01 1.01], ...
'XTick',[], ...
'YTick',[]);
line(ax, ...
'XData',[0 0 1 1 0], ...
'YData',[0 1 1 0 0], ...
'Color','r', ...
'LineWidth',3, ...
'LineJoin','miter', ...
'Clipping','off')
axes(fig,'Position',[0.1 0.2 0.2 0.2])
plot(1:5,rand(1,5))
xlabel('xlabel')
ylabel('ylabel')
fig = figure;
for i = 1 : 6
subplot(3,2,i)
scatter(rand(1,10),rand(1,10))
end
axes(fig,'Position',[0.02 0.12 0.29 0.29], ...
'Box','on', ...
'XTick',[], ...
'YTick',[], ...
'XColor','r', ...
'YColor','r', ...
'LineWidth',3)
axes(fig,'Position',[0.1 0.2 0.2 0.2])
plot(1:5,rand(1,5))
xlabel('xlabel')
ylabel('ylabel')

추가 답변 (1개)

Sim
Sim 2024년 6월 26일
편집: Sim 2024년 6월 26일
Got it, with the Control Axes Layout options!
fig = figure;
for i = 1 : 6
subplot(3,2,i)
scatter(rand(1,10),rand(1,10))
end
ax = axes(fig,'Position',[.1 .2 .2 .2]);
plot(1:5,rand(1,5))
xlabel('my xlabel')
ylabel('my ylabel')
annotation("rectangle",ax.OuterPosition,Color="red",LineWidth=2)

카테고리

Help CenterFile Exchange에서 Subplots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by