首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB创建两个x轴的图表:如何对齐它们?

MATLAB创建两个x轴的图表:如何对齐它们?
EN

Stack Overflow用户
提问于 2017-08-16 23:09:45
回答 1查看 278关注 0票数 0

我正在尝试使用两个不同的x轴来绘制一个函数。正如你在图像中看到的,轴没有正确重叠!

我该如何修复它?我已经设置了在两个轴上有相同数量的刻度,但它没有帮助!

这是我使用的代码:

代码语言:javascript
复制
ax1 = gca;
set(gca, 'box', 'off')
xlabel('Frequency shift, \Delta\omega (/THz)');
ylabel('Autocorrelation, F_{2}');
ylim([0.0,1]);
xlim([0, 10])

xlimits = get(ax1,'XLim');
ylimits = get(ax1,'YLim');
xinc = (xlimits(2)-xlimits(1))/5;
yinc = (ylimits(2)-ylimits(1))/5;
set(ax1,'XTick',[xlimits(1):xinc:xlimits(2)],...
        'YTick',[ylimits(1):yinc:ylimits(2)])

ax1.XColor = 'b';
ax1.YColor = 'b';
ax1_pos =  ax1.Position;

ax2 = axes('Position',ax1_pos,...
    'XAxisLocation','top',...
    'YAxisLocation','right',...
    'Color','none');
ax2 = gca;
xlim([0, 2.5]) %in nm (note two pi)
ylim([0.0,1]);

xlimits = get(ax2,'XLim');
ylimits = get(ax2,'YLim');
xinc = (xlimits(2)-xlimits(1))/5;
yinc = (ylimits(2)-ylimits(1))/5;
set(ax2,'XTick',[xlimits(1):xinc:xlimits(2)],...
        'YTick',[ylimits(1):yinc:ylimits(2)])

xlabel('Wavelength shift, \Delta\omega(/nm)');
ylabel('Autocorrelation, F_{2}');

ax2 = gca;
%set(ax,'XMinorTick','on','YMinorTick','off')
ax2.FontSize = 15;
ax2.Box = 'on';
ax2.LineWidth = 2;
set(gca, 'box', 'off')


set(findall(gcf,'type','text'),'FontSize',15);
EN

回答 1

Stack Overflow用户

发布于 2017-08-16 23:19:16

也许可以试试

代码语言:javascript
复制
ax1_pos = get(gca,'Position');
ax2 = axes('Position', [ax1_pos(1) (ax1_pos(2) - 0.5) ax1_pos(3) ax1_pos(4)]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45717225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档