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

### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

# intercept of secondary axis

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

## Products

No products are associated with this question.

Answer by Azzi Abdelmalek on 19 Jan 2013
Edited by Azzi Abdelmalek on 19 Jan 2013

After plotyy add this:

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

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)
```

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