【问题标题】:Matlab break X axisMatlab断X轴
【发布时间】:2017-08-29 20:41:27
【问题描述】:

我无法显示从 0-10K 运行的图。 目前我的计算范围为 0-100,看起来很棒。

目前:

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

如何将其保持在 0-100 之间并仅显示跳转到 10K ? 有可能吗?

问题是 0-100 在10K 中所占的比例很小,所以看起来很糟糕。

【问题讨论】:

  • 您不想破坏 x 轴 - 您希望它是对数的:semilogx。 - 这将是显示数据的正确科学方式。

标签: matlab


【解决方案1】:

您可以在更接近的 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].'))));

这是它创建的情节:

【讨论】:

    【解决方案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);
    

    还有剧情:

    在您的情况下,第二个差距应该比第一个大得多,但这是相同的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2011-12-16
      • 2014-10-05
      相关资源
      最近更新 更多