# How to reverse x-axis in a stacked plot.

9 views (last 30 days)
Zhen Liu on 22 Apr 2020
Edited: Adam Danz on 24 Nov 2020
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? 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'; #### 1 Comment

Zhen Liu on 13 May 2020

Fangjun Jiang on 22 Apr 2020
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

Adam Danz on 19 Nov 2020
Error using view (line 63)
Using view with stackedplot is not supported.

Adam Danz on 19 Nov 2020
Edited: Adam Danz on 24 Nov 2020
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') 