【问题标题】:Custom x-axis values in a matlab plotmatlab图中的自定义x轴值
【发布时间】:2012-11-14 03:02:57
【问题描述】:

目前,当我绘制一个 9 x 6 数组时,该图的 x 轴只有 1、2、3 到 9。Y 轴显示正确的值。

我希望自定义 x 轴值而不是 1 到 9。他们应该是

100 200 400 1000 2000 5000 10000 20000 50000

相反。我试过了

set(gca,'XTick', [100 200 400 1000 2000 5000 10000 20000 50000])

但这不是正确的做法。是否有 Matlab 选项可以为 x 轴设置这些自定义值?为什么Matlab 还是只使用 1 到 9?

【问题讨论】:

    标签: matlab plot axis octave figure


    【解决方案1】:

    如果您想保持 x 值之间的距离(例如 1:9)并且只更改标签(而不是 x 值之间的距离),请尝试以下操作:

    y = rand(9,6);
    labels = [100 200 400 1000 2000 5000 10000 20000 50000];
    plot(y);
    set(gca, 'XTick', 1:length(labels)); % Change x-axis ticks
    set(gca, 'XTickLabel', labels); % Change x-axis ticks labels.
    

    【讨论】:

      【解决方案2】:

      尝试使用

      x = [100 200 400 1000 2000 5000 10000 20000 50000];
      y = rand(9,6); % Your y-axis data
      plot(x, y);
      set(gca,'XTick',x); % Change x-axis ticks
      set(gca,'XTickLabel',x); % Change x-axis ticks labels to desired values.
      

      请注意,由于使用 un x 轴的值/大小非常不同,您可以获得一些非常接近(且不可读)的 x-labels

      【讨论】:

      • 有没有办法设置设置字符串刻度标签?例如,希腊字母?
      【解决方案3】:

      您应该使用xTickLabel 而不是XTick

      MATLAB 将每一列绘制为单独的曲线。因此,这意味着您有 6 条曲线和每条曲线的 9 个数据点。 x 轴数据为 1-9,因为您没有提供任何数据供 MATLAB 进行绘图。

      此外,您可能想要错误的东西。这样做会给你相等的间距。它只会用你的数组替换 1-9 。由于您的 x 轴数据不是等间距的,所以会很奇怪。

      你可能想这样做:

      xdat = [100 200 400 1000 2000 5000 10000 20000 50000];
      ydat = rand(9,6); % Your y-axis data
      plot(xdat, ydat)
      

      【讨论】:

        猜你喜欢
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-18
        相关资源
        最近更新 更多