MATLAB Answers

plotyy with different data ranges to visually appear equal.

Asked by Clifford Shelton on 23 Oct 2012

Ok. When making a line plotyy graph, the two y-axis have data with different ranges.

For example

y(1) has a range from 0:14
y(2) has a range from 5.9:6.35

Because of this difference in ranges, the second line graph is generated to "float above" the first line graph in the plot.

What I want to do is have the two line graphs fit in the graph where even though they have different value ranges, one doesn't float over the other (maybe in other words to have the same local max and same local min.)

So that the value of 5.9 on y(2) will visually meet with the value of 0 on y(1) in the plotyy graph.

Any help is most appreciated!

  1 Comment

Matt Fig
on 24 Oct 2012

Please create real example code that can be copied and pasted. Once you give code that will run so that we see what you see, then give a description of what you want to see.



2 Answers

Answer by Doug Hull
on 23 Oct 2012

plotyy might be the function you seek!

  1 Comment

Clifford Shelton on 24 Oct 2012

thanks for the suggestion, but I'm using the plotyy function. I may not have made myself clear. Please see my comment to Walter Robinsons answer....I hope I'm much clearer then. Thanks for the help!

Answer by Walter Roberson
on 23 Oct 2012

You should be able to set() the YLim properties of the two axes objects independently.

  1 Comment

Clifford Shelton on 24 Oct 2012

Thanks for the suggestion, there is one problem though. I'm generating a bunch of plotyy charts that all have different value ranges. And I don't even know what the value ranges will be until the graphs are generated.

For the example: data range of y(1) = 0:10

data range of y(2)= 5.9:6.3

after creating a plotyy chart the y(2) data is always plotted "floating" above my y(1) data because the y(1) graph always has an automatic Y minimum set at 0.

However The y(2) line graph however has a Y minimum that changes. (may be set at 5 or 4.5 which makes this seond line "float above" the y1 line.)

Is there anyway to code in that the y(2) Ylim properties are always set to be the local minimum and maximums of my y(2) data range?

That would be the easiest way I can think of solving this problem.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today