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

John
on 19 Jan 2013

Hi,

Noting happened, no error either.

My code is:

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

Azzi Abdelmalek
on 19 Jan 2013

please, post the code (allows copy past).

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

Azzi Abdelmalek
on 19 Jan 2013

It will be helpful if you post your code

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

Related Content

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

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments