MATLAB绘图中的轴标度与标注

MATLAB绘图中的轴标度与标注,matlab,plot,Matlab,Plot,我有一个X轴上正负频率的FFT图。我在同步频率有一个峰值,比如1X(基频的1倍),另一个峰值次同步频率是0.30X(基频的0.30倍)。现在我想在轴上标记两个缩放。我使用了以下代码 %for setting 1X frequency ( Synchronous frequency) set(gca,'XTick',-5000:2500:5000) set(gca,'XTickLabel',{'-2X','-1X','0','1X','-2X'}) %for setting 0.30X (

我有一个X轴上正负频率的FFT图。我在同步频率有一个峰值,比如1X(基频的1倍),另一个峰值次同步频率是0.30X(基频的0.30倍)。现在我想在轴上标记两个缩放。我使用了以下代码

%for setting 1X frequency ( Synchronous frequency) 
set(gca,'XTick',-5000:2500:5000)
set(gca,'XTickLabel',{'-2X','-1X','0','1X','-2X'})

 %for setting 0.30X ( Sub harmonic frequency)
 set(gca,'XTick',-700:700:700)
set(gca,'XTickLabel',{'-0.3X','0','0.3X'})
但我只看到了第二次缩放,其中第一次没有被绘制。是否有其他方法可以用2个绝对值绘制此图。请查找参考图像。提前谢谢


正如图中所示,我已经能够标记出第一组频率(1X、1/2X等)。现在我还想要第二组(-30X,0.30X等),正如我用箭头指示的那样。

也许我遗漏了什么或者误解了你的问题,但是你为什么不把它合并到一个命令中呢?如注释中所述,最后一组命令将覆盖第一组命令

set(gca,'XTick',[-5000 -2500 -700 0 700 2500 5000])
set(gca,'XTickLabel',{'-2X','-1X','-0.3X','0','0.3X','1X','-2X'})

我不知道你在找什么,但也许这对你有用

c=[-3:3 -3:0.3:3]; % spacing of 1 and 0.3
c=c.*2500; % 2500 is fundamental frequency
c=unique(sort(c));

for i=1:length(c)
    str1{i}=[num2str(c(i)/2500,'%.1f'),'X'];
end

plot(1,1,'+'); % random
hold on;
set(gca,'XTick',c,'XTickLabel',str1);
xlim([min(c) max(c)]);

最后两个命令将覆盖前两个命令。但是你的图像显示了完全不同的东西。请共享复制您的文件所需的代码problem@PBCR您介意不使用标签而使用实际数字吗?@PBCR请验证并接受是否正确。否则,请让我知道需要更改/澄清的内容!我想你想把两个x轴放在稍微不同的刻度上,在这种情况下,请看:我不是100%确定这是否是OP想要的,但也许你应该包括一种绘制第二个轴和标签的方法?@Krisis,是的。这不是我想要的。我需要在绘图上看到两个具有不同比例的标签。我已经更新了我的数字。@PBCR恐怕我仍然不明白你的问题,或者你想做什么。你的解决方案导致了一个模糊的绘图lol我的解决方案是绝对正确的。试着把这个图形拉伸到你小屏幕的最大尺寸,我做到了,我看到了结果。我误解了OP的意思。我可能会在早上编辑我的解决方案。你能编辑你的解决方案让我投票吗?我现在把它锁上了。啊,完成了,我应该上愤怒管理课。我明天早上再看。这就是在13个多小时的工作之后,当人们有了高水平的思维时会发生的事情。我很可能会删除我的+1.