How to add a second x-axis on top in plot?

18 views (last 30 days)
Edited: John R on 8 Dec 2021
I think something similar is asked in the forum before and there is a documentation on how to add second a y-axis. But I am not exactly getting what I want. It would be great if someone can help.
I want something very simple. I have x1, x2, and corresponding y. I want to plot y and show x2 at the bottom axis and x1 at the top axis. Please remember, x1 and x2 are related, so x1 = 14 will refer to x2 = 399 and they will plot y =1..and so on.
x1 = [14 16 18 20 22];
x2 = [399 520 675 830 1001];
y =[1 2 3 4 5];
plot(x2,y)

Jonas on 12 Jul 2021
this may be the function you are searching for
Thanks but no, not this one. This one requires y1 and y2 that means two seperate plots and the x axes are not related.... But I want only one y plot and two related x-axes for the same plot.

John R on 5 Nov 2021
Edited: John R on 8 Dec 2021
x1 = [14 16 18 20 22];
x2 = [399 520 675 830 1001];
y =[1 2 3 4 5];
t=tiledlayout(1,1);
ax1=axes(t);
set(ax1,'XLim',[min(x1) max(x1)]);
plot(ax1,x1,y)
ax1.XTick=x1;
ax1.YTick=[];
ax1.XTickLabel=x1;
ax2=axes(t);
set(ax2,'XLim',[min(x1) max(x1)]);
plot(ax2,x1,y)
ax2.XAxisLocation='top';
ax2.XTick=x1;
ax2.XTickLabel=x2;

R2021a

Community Treasure Hunt

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

Start Hunting!