How to reverse x-axis in a stacked plot.

I have used the code below to plot a stacked plot,
X = [4 3 2 1];
x = X';
Y = [2 3 4 5; 3 4 5 6];
y = Y';
plot1=stackedplot(x,y)
The returned plot has a x-direction from min value to max value, how can I modify the code to make it from max to min as the X data presented?

 Accepted Answer

Ameer Hamza
Ameer Hamza on 22 Apr 2020
Edited: Ameer Hamza on 22 Apr 2020
stackedplot is still very limited in capabilities and does not support several features. Manipulating the appearance of X-axis is one of them. Currently, your best bet is to use subplots with few modifications to make it look like stackedplot.
X = [4 3 2 1];
x = X';
Y = [2 3 4 5; 3 4 5 6];
y = Y';
% plot1=stackedplot(x,y)
ax1 = subplot(2,1,1);
plot(x, y(:,1));
ax1.XAxis.Visible = 'off';
ax1.Position(2) = ax1.Position(2)-0.05;
ax1.XDir = 'reverse';
ax2 = subplot(2,1,2);
plot(x, y(:,2));
ax2.Position(2) = ax2.Position(2)+0.05;
ax2.XDir = 'reverse';

More Answers (2)

You can get the axis handles in stackedplot using the undocumented NodeChildren property.
x = [4 3 2 1];
y = [2 3 4 5; 3 4 5 6]';
h = stackedplot(x,y);
set(findobj(h.NodeChildren,'Type','Axes'),'XDir','reverse')
This is interesting. I wonder if this meets your need.
%%
x=1:4;
y=rand(size(x));
plot(y,x);
xlabel('y');
ylabel('x');
axis ij
view(90,-90);

1 Comment

Error using view (line 63)
Using view with stackedplot is not supported.

Sign in to comment.

Categories

Asked:

on 22 Apr 2020

Edited:

on 24 Nov 2020

Community Treasure Hunt

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

Start Hunting!