1

How can I align an inset of a MATLAB plot to the top right edge of the box, like in the picture?

Example in Gnu R

The example was generated with GNU R as explained in How to add an inset (subplot) to "topright" of an R plot?

Community
  • 1
  • 1
Jonas Stein
  • 6,826
  • 7
  • 40
  • 72

1 Answers1

2

Here is a way to do it:

Basically create a figure with an axes, and then add a new axis that you place to a specific position and to which you give the size you want.

Code:

clc
clear
close all

%// Dummy data
x = -20:0;
x2 = x(5:10);
%// Zoomed region to put into inset.

y = x.^2;
y2 = y(5:10);

%// Create a figure
hFig = figure(1);

%// Plot the original data
hP1 = plot(x,y);

xlabel('Original x','FontSize',18)
ylabel('Original y','FontSize',18)

hold on

%// Add an axes and set its position to where you want. Its in normalized
%// units

hAxes2 = axes('Parent',hFig,'Position',[.58 .6 .3 .3]);

%// Plot the zommed region
plot(x2,y2,'Parent',hAxes2)

%// Set the axis limits and labels

set(gca,'Xlim',[x(5) x(10)])
xlabel('Zoomed x','FontSize',16)
ylabel('Zommed y','FontSize',16)

And output:

enter image description here

To be fancy you could play around with the new axes position so that the outer borders coincide with the large one, but that should get you going :)

Community
  • 1
  • 1
Benoit_11
  • 13,905
  • 2
  • 24
  • 35