MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by John
on 19 Jan 2013

Hi,

Im plotting two lines using two axis. They are velocity and acceleration. My question is how can I make the 0 point on the two axis be at the same level? At the moment, the 0 on the secondary axis is inline with 50 on the primary axis.

plotyy(x,y1,x,y2,'plot');

Thank you

*No products are associated with this question.*

Answer by Azzi Abdelmalek
on 19 Jan 2013

Edited by Azzi Abdelmalek
on 19 Jan 2013

Accepted answer

After plotyy add this:

yt=get(gca, 'ytick'); yt(1)=[]; set(gca,'ytick',yt)

Show 1 older comment

Azzi Abdelmalek
on 19 Jan 2013

I've edited the code, try again, if it don't work, post your code. And don't accept the answer before checking it

Answer by Azzi Abdelmalek
on 19 Jan 2013

Edited by Azzi Abdelmalek
on 19 Jan 2013

Try this

close; x=0:250; y1=100*abs(sin(0.01*x)), y2=10*cos(.04*x); [ax,h1,h2]=plotyy(x,y1,x,y2,'plot'); yt=get(ax(1), 'ytick'); yt(1)=[]; set(ax(1),'ytick',yt)

Show 2 older comments

John
on 19 Jan 2013

All I have is 3 variables x, y1 and y2.

My code is: plotyy(x,y1,x,y2,'plot');

I'm trying to plot them on a graph with a secondary axis. But I need the the '0' point on both axis to be at the same level.

In the picture above, one axis is 50 and same level of the other axis is 0. I need the 0s inline.

Can this be done?

Thanks

Azzi Abdelmalek
on 19 Jan 2013

Ok, I get it now, use

ylim=get(ax(1), 'ylim'); ytick=get(ax(1), 'ytick'); set(ax(2),'ylim',ylim,'ytick',ytick)

but you will loose the negative part

## 0 Comments