How to make an inset of matlab figure inside the figure.

1 307 views (last 30 days)
Hari on 30 Jan 2013
Commented: Adeel Yousuf on 2 May 2020
In matlab help menu there is an example for making insets for world-map. But I want the inset for a simple graph obtained by solving some differential equations. When I used the same codes in my case, it does not work. I don't know from where to start. Can you provide me the whole program for a simple example.
  1 Comment
Jan on 30 Jan 2013
Please specify more exactly what you want. It does not help that we, that there is any example in any help text. I'm not sure what "insets" are also. Therefore neither providing a complete solution nor an example is possible.

Sign in to comment.

Answers (3)

Kye Taylor
Kye Taylor on 30 Jan 2013
Edited: Image Analyst on 24 Dec 2018
Maybe try something like
x1 = linspace(0,1);
x2 = linspace(3/4,1);
y1 = sin(2*pi*x1);
y2 = sin(2*pi*x2);
% plot on large axes
% create smaller axes in top right, and plot on it
axes('Position',[.7 .7 .2 .2])
box on
0000 Screenshot.png

Hamid Radmard Rahmani
Hamid Radmard Rahmani on 24 Dec 2018
how to switch between small and large figures?
Adeel Yousuf
Adeel Yousuf on 2 May 2020
I think it's mainly bcz "hold off" is not written in the code so it plots in the already opened figure. Try including hold(ax1,'off') & hold(ax2,'off') at the end of code.

Sign in to comment.

prateek raj gautam
prateek raj gautam on 7 Jun 2019
% Step 1. assign value to plotvariable=?
% Step 2. change range=?
%% plot on plot
clear all
close all
%% assign yor variable here
plotvariable=y% i am using y as my plot variable
grid on
%% location of subpart on figure
axes('position',[xstart ystart xend-xstart yend-ystart ])
box on
%% define range of subpart
range=90:110% here i am using range from 90 to 110
plot(range,plotvariable(1,range))% here i am plotting sub part of same figure. you plot another figure
grid on

Community Treasure Hunt

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

Start Hunting!