![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/364264/image.png)
How to add a second , upper x axis and control the value's locations and text?
조회 수: 148 (최근 30일)
이전 댓글 표시
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
채택된 답변
Ameer Hamza
2020년 9월 22일
편집: Ameer Hamza
2020년 9월 22일
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')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/364264/image.png)
댓글 수: 4
Ameer Hamza
2020년 9월 22일
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';
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!