Plotting and reversing axis direction

Hello, I want to plot a graph with one x axis and two y axes. I want one of the y axes to be reversed i.e. beginning at the top so the data hangs off the top of the graph. Additionally I want the reversed y axis plot to be a bar graph and the other to be an ordinary line plot.
I tried this function
plot (a,b)
bar(a,c)
Set (gca,'Ydir','reverse')
but this reversed both y axes.

 Akzeptierte Antwort

Daniel Shub
Daniel Shub am 26 Nov. 2011

3 Stimmen

a = (1:10)';
b = rand(10, 1);
c = rand(10, 1);
figure
h1 = axes
bar(a, c)
set(h1, 'Ydir', 'reverse')
set(h1, 'YAxisLocation', 'Right')
h2 = axes
plot(a,b)
set(h2, 'XLim', get(h1, 'XLim'))
set(h2, 'Color', 'None')
set(h2, 'Xtick', [])

2 Kommentare

Maeve  Ryan
Maeve Ryan am 26 Nov. 2011
Thanks Daniel :)
MISBAH MEHAK
MISBAH MEHAK am 3 Feb. 2024
It is not working in case of subplot. The latter plot considers full figure instead of subplot. Can you please tell me how to make it work in a subplot.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 26 Nov. 2011

2 Stimmen

Consider using plotyy(), recording the axes generated, and applying the set() to the appropriate one.

3 Kommentare

Maeve  Ryan
Maeve Ryan am 26 Nov. 2011
Thanks for your help. Plotyy function worked. However I am unable to reverse the direction of just one of the y axes. Would you have more information on applying set()?
Walter Roberson
Walter Roberson am 26 Nov. 2011
ax = plotyy(...)
set(ax(2),'YDir','reverse')
Y Budi Sulistioadi
Y Budi Sulistioadi am 10 Jun. 2013
this answer rocks! Thanks

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by