【问题标题】:Setting a specific number of tick marks on MATLAB plot在 MATLAB 绘图上设置特定数量的刻度线
【发布时间】:2014-03-19 20:14:31
【问题描述】:

我试图弄清楚如何在我在 MATLAB 中创建的绘图的 x 轴上设置自定义数量的刻度线,但我不确定这是否可能。我看到this question 似乎在问同样的问题,但这个答案没有帮助,因为

set(gca,'XTick',tickVector);

设置刻度的位置,而不是刻度的数量。 我的代码如下。

rangeBegin = 100000;
rangeEnd = 200000;
numberOfXTicks = 5;

plot(data(:, 1));
xAxisVals = linspace(rangeBegin, rangeEnd, numberOfXTicks);
%set(gca,'XTick',rangeBegin:rangeEnd); % Doesn't work as expected
set(gca,'XTickLabel',xAxisVals);

所以在这个例子中,我只是在寻找一种方法来强制 MATLAB 在 x 轴上创建带有 5 个刻度的绘图,以匹配我设置的 5 个 XTickLabels。

data 是一个大约 的双精度数组。

编辑:我还应该补充一点,我希望我的 x 轴值来自一个单独的数组。上面显示的数据数组对应一个时间数组(未显示...我的坏),数据数组中的每个值在时间数组中都有对应的值。由于我从数据数组中选择一个范围,我想选择相应的时间值并将其用作 x 标签。但显然我不想在我的 x 轴上有 3000 个时间标签。 希望这更清楚。

【问题讨论】:

  • 绘图中的 x 轴从 1 到数据长度。我猜你正在尝试设置 x 轴显示部分的刻度,所以看不到它们。您希望 x 轴是什么?
  • 我编辑了我的问题。基本上,我还有一个名为 time 的变量,我想用它来生成我的 x 轴标签。
  • 尝试使用 plot(time,data(:,1)) 看看效果是否更好

标签: matlab plot


【解决方案1】:
numberOfXTicks = 5;

h = plot(data(:, 1));
xData = get(h,'XData');
set(gca,'Xtick',linspace(xData(1),xData(end),numberOfXTicks))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多