在MATLAB图上设置特定数量的刻度线

时间:2014-03-19 20:14:31

标签: matlab plot

我想弄清楚如何在我在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个XTickLabel。

数据是一个双精度数组,大致为< 3000x1>。

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

1 个答案:

答案 0 :(得分:6)

numberOfXTicks = 5;

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