我正在尝试弄清楚如何在我在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相匹配。
数据是一个双精度数组,大致为<3000x1>。
编辑:我还应该补充说,我希望我的x轴值来自单独的数组。上面显示的数据数组对应一个时间数组(不是shown...my bad),数据数组中的每个值在时间数组中都有一个相应值。由于我从数据数组中选择了一个范围,因此我希望选择相应的时间值并将其用作x标签。但很明显,我不想让3000个时间标签出现在我的x轴上。希望这一点更清楚。
发布于 2014-03-19 20:33:37
numberOfXTicks = 5;
h = plot(data(:, 1));
xData = get(h,'XData');
set(gca,'Xtick',linspace(xData(1),xData(end),numberOfXTicks))
https://stackoverflow.com/questions/22517098
复制