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.

 採用された回答

Daniel Shub
Daniel Shub 2011 年 11 月 26 日

3 投票

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 件のコメント

Maeve  Ryan
Maeve Ryan 2011 年 11 月 26 日
Thanks Daniel :)
MISBAH MEHAK
MISBAH MEHAK 2024 年 2 月 3 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2011 年 11 月 26 日

2 投票

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

3 件のコメント

Maeve  Ryan
Maeve Ryan 2011 年 11 月 26 日
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 2011 年 11 月 26 日
ax = plotyy(...)
set(ax(2),'YDir','reverse')
Y Budi Sulistioadi
Y Budi Sulistioadi 2013 年 6 月 10 日
this answer rocks! Thanks

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by