English 中文(简体)
Plot Overlay MATLAB
原标题:

How do you take one plot and place it in the corner (or anywhere for that matter) of another plot in MATLAB?

I have logarithmic data that has a large white space in the upper right-hand side of the plot. In the white space I would like to overlay a smaller plot containing a zoomed in version of the log plot in that white space (sort of like a magnified view).

Before you tell me it can t be done, I would like to mention that I have seen it in action. If my description is lacking, just let me know and I ll attempt to better describe it to you.

最佳回答

An example:

x = 1:20;
y = randn(size(x));

plot(x, y, LineWidth ,2)
xlabel( x ), ylabel( y ), title( Plot Title )

h = axes( Position , [.15 .65 .2 .2],  Layer , top );
bar(x,y), title( Bar Title )
axis(h,  off ,  tight )

screenshot

问题回答

You can use axes properties position and units and make them overly. Pay attention to create small axes after big one or use uistack() function so that big does not hide small one.

What you can not do is to make an axes child of another one (like Mathworks do with legend). But you do not need it anyway.

For the second plot you have to use axes and line instead of plot and hold on.

Units as normalized (which is default) allows uniform resizable look when parent figure is being resized (e.g. manually maximized).





相关问题
MATLAB Solving equations problem

I want to solve these equations using MATLAB and I am sure there is a non zero solution. The equations are: 0.7071*x + 0.7071*z = x -0.5*x + 0.7071*y + 0.5*z = y -0.5*x - 0.7071*y +...

Difference between MATLAB s matrix notations

How do you read the following MATLAB codes? #1 K>> [p,d]=eig(A) // Not sure about the syntax. p = 0.5257 -0.8507 -0.8507 -0.5257 d = ...

preventing data from being freed when vector goes out of scope

Is there a way to transfer ownership of the data contained in a std::vector (pointed to by, say T*data) into another construct, preventing having "data" become a dangling pointer after the vector goes ...

Divide two polynomials using MATLAB

I want to divide p(x) by q(x) given that: p(x)=-5x^4+3x^2-6x q(x)=x^2+1 I tried: p=inline( -5*(x^4)+3*(x^2) , x ) p = Inline function: p(x) = -5*(x^4)+3*(x^2) q=inline( x^2+1 , x ) q = ...

matlab deals with Fibbonacci

The Fibonacci series is given as follows: 1, 2, 3, 5, 8, 13, 21, ... How can I write a script which calculates and prints the n-th Fibonacci term (for n>2), where n is inputed by the user. This ...

How do I plot lines between all points in a vector?

I have a vector containing some points in 2-D space. I want MATLAB to plot these points with lines drawn from every point to every other point. Basically, I want a graph with all vertices connected. ...

How do I create a string using a loop variable in MATLAB?

I have a loop like this: for i=1:no %some calculations fid = fopen( c:\out.txt , wt ); %write something to the file fclose(fid); end I want data to be written to different files like ...

热门标签