How to add a second , upper x axis and control the value's locations and text?
108 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ron Nativ
am 22 Sep. 2020
Kommentiert: Ameer Hamza
am 22 Sep. 2020
Hi all,
My code generates simple plot and I would like to add a second x-axis with the same scaling as in the first one. However, I cannot seem to control the locations and text where values are placed, from some reason. I would be happy to get your help.
Here is my code:
x = 1:10
y = x.^2;
%
plot(x,y)
xlabel('vector 1')
ylabel('vector 2')
ax1 = gca;
% handle second X-axis
ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top','YAxisLocation','right','Color','none','XColor','k','YColor','k');
k=get(ax1,'XTick');
l=get(ax1,'Position');
set(ax2,'YTick',([]));
Thanks!
Ron
0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 22 Sep. 2020
Bearbeitet: Ameer Hamza
am 22 Sep. 2020
Are you trying to do something like this
x = 1:10;
y = x.^2;
%
ax1 = axes();
box(ax1);
xlabel('vector 1')
ylabel('vector 2')
plot(x,y)
% handle second X-axis
ax2 = axes('Position', get(ax1,'Position'), ...
'XAxisLocation','top', ...
'Color','none', ...
'XColor','k');
ax2.YAxis.Visible = 'off';
ax2.XLim = ax1.XLim;
also add the following line if you want the x-limits to be automatically linked
linkprop([ax1 ax2], 'XLim')
4 Kommentare
Ameer Hamza
am 22 Sep. 2020
I thought that you wanted the same x limits. I am glad that you found the solution. The following code shows an alternate way.
x = 1:10;
y = x.^2;
%
ax1 = axes();
box(ax1);
xlabel('vector 1')
ylabel('vector 2')
plot(x,y)
% handle second X-axis
ax2 = axes('Position', get(ax1,'Position'), ...
'XAxisLocation','top', ...
'Color','none', ...
'XColor','k');
ax2.YAxis.Visible = 'off';
ax2.XLim = [1 1e6];
ax2.XTick = [1 1e3 1e6];
ax2.XTickLabel = {'1 year','1000 years','10^{6} years'};
ax2.XScale = 'log';
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Geographic Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!