# How to plot a magnification inside a figure

178 views (last 30 days)
Giuseppe on 20 Dec 2019
Commented: Giuseppe on 21 Dec 2019
Hi guys!
I've a plot in which I've drawn 2 functions and I want to magnificate the portion circled in red in figure below:
The code that I've used is the following (note that I'v obtained the figure reversing y-axis):
f3=figure (3);
plot(x,cp_inv,'k--',x,cp_5e6,'k-','LineWidth',1); %here there are 2 tabular functions, the x vector is the same
axis ([-0.05 1.05 -1.5 1.2])
set (gca,'Ydir','reverse');
xlabel ('x/c');
ylabel ('C_p');
grid on;
legend ('non viscoso','viscoso');
legend('Location','southeast');
Can anyone help me ?

Image Analyst on 20 Dec 2019
Edited: Image Analyst on 20 Dec 2019
See this snippet. Adapt it to plot your two functions just with indexes where x is between 0.45 and 0.55
% Draw a small plot inset to a larger one.
clc; % Clear the command window.
% close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 18;
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, 'LineWidth', 2)
grid on;
ax1 = gca; % Store handle to axes 1.
% Create smaller axes in top right, and plot on it
% Store handle to axes 2 in ax2.
ax2 = axes('Position',[.7 .7 .2 .2])
box on;
plot(x2, y2, 'b-', 'LineWidth', 2)
grid on;
% Now draw something back on axis 1
hold(ax1, 'on'); % Don't blow away existing curve.
y1b = cos(2*pi*x1/3);
plot(ax1, x1, y1b, 'r-', 'LineWidth', 2);
% Now draw something back on axis 2
hold(ax2, 'on'); % Don't blow away existing curve.
y2b = cos(2*pi*x2/3);
plot(ax2, x2, y2b, 'r-', 'LineWidth', 2);
Giuseppe on 21 Dec 2019