2017-08-29 80 views
4

我在展示一个从0-10K运行的情节时遇到了麻烦。 目前我有从0-100计算运行,它看起来不错。Matlab break X轴

目前:

enter image description here

现在我想添加一个X点,这是10K 它看起来是这样的: enter image description here

如何保持它从0-100并只显示跳转到10K? 它甚至有可能吗?

问题是0-100是10K中很小的部分,所以看起来很糟糕。

+0

你不想打破x轴 - 你希望它是对数:semilogx。 - 这将是显示数据的正确科学方法。 – thewaywewalk

回答

4

您可以将您的一个异常点绘制在较近的x坐标处,然后调整XTickXTickLabel属性,使其看起来好像绘图区域中存在中断。例如:

plot([1:20 25], 1./[1:20 10000]); 
set(gca, 'XTick', [2:2:20 25], ... 
     'XTickLabel', strtrim(cellstr(int2str([2:2:20 10000].')))); 

而这里的这个创建情节:

enter image description here

+0

谢谢先生!它确实有帮助。 –

2

也许你可以尝试在不同的空白处对x点(对于第二个图)进行采样。您可以组合两个x采样点阵列(每个阵列具有固定间隙,但第一个间隙比第二个间隙小得多)。然后你绘制合并的点。

下面是一个代码示例:

clear; 
close all; 
clc; 

gap1 = 0.2; 
x_left = 1:gap1:3; 
gap2 = 0.5; 
x_right = 3+gap2:gap2:6; 
x_ticks_for_plot = [x_left x_right]; 

x=x_ticks_for_plot; 
y = sin(x); 
plot(x,y); 
xticks(x_ticks_for_plot); 

和剧情:

enter image description here

在你的情况下,第二间隙应比第一大得多,但它同样的想法。

+0

谢谢你,为你的时间。 –