Mirror bar chart: 2 bar charts, 2 y axes, 1 x axis. Is it possible?

Hi all!
I want to get this mirror bar chart. Tried everything but nothing works.
Any idea?

6 commentaires

For the lower figure do
% if true
% code
% end
h= axes
bar(...)
set(h,'Ydir','reverse');
This is exactly what I did in order to get the reverse bar.
Now, if you want to plot this reversed data set in the same plot of the other, sharing the x-axis, I got this plot:
Note that the 'normal' bar plot dissapeared.
a = (1:10)';
b = rand(10, 1);
c = rand(10, 1)*2;
figure
bar(a,b)
h1=axes
bar(a,b)
set(h1, 'Ydir', 'reverse')
Look, this is the script for each plot
a = (1:10)';
b = rand(10, 1);
c = rand(10, 1)*2;
figure(1)
bar(a,b)
figure(2)
h1=axes
bar(a,c)
set(h1, 'Ydir', 'reverse')
The plots:
How can I 'merge' the plot using the same x-axis?
Let´s be straight.
I want to get this bar plot
%if true
% code
% end
a = (1:10)';
b = rand(10, 1);
c = rand(10, 1)*0.75;
figure
h1 = axes
bar(a,b);set(h1,'Ydir','normal'); hold(h1,'on')
h2 = gca
bar(a,-c)
set(h2, 'Ydir', 'reverse')
axis([0 10 -1 1])
Jose Rego Terol
Jose Rego Terol le 3 Oct 2020
Modifié(e) : Jose Rego Terol le 3 Oct 2020
The y axis is negative. I need the y axis in positive integers.

Connectez-vous pour commenter.

Réponses (1)

Nearly done
figure
ax1 = axes('Position',[0.138095238095238 0.529474812433012 0.791904761904761 0.400525187566988]);
bar(ax1,a,c)
box off
ax2 = axes('Position',[0.138095238095238 0.142857142857143 0.791904761904763 0.386617669575869]);
bar(ax2,a,b)
box off
set (ax2, 'ydir', 'reverse')

Catégories

En savoir plus sur Graphics Object Properties dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by