我想弄清楚如何在我在MATLAB中创建的绘图的x轴上设置自定义刻度数,但我不确定这是否可行.我看到这个问题似乎在问同样的问题,但那个答案从那以后就没那么有用了
set(gca,'XTick',tickVector);
Run Code Online (Sandbox Code Playgroud)
设置刻度线的位置,而不是刻度线的数量.我的代码如下.
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);
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中,我只是想找到一种方法来强制MATLAB在x轴上创建5个刻度的绘图,以匹配我设置的5个XTickLabel.
data是一个大约<3000x1>的双精度数组.
编辑:我还应该补充一点,我希望我的x轴值来自一个单独的数组.上面显示的数据阵列对应于时间数组(未示出......我的坏),并且数据数组中的每个值在时间数组中具有对应的值.由于我从数据数组中选择一个范围,我想选择相应的时间值并将其用作x标签.但显然我不想在我的x轴上使用3000个时间标签.希望这更清楚.
numberOfXTicks = 5;
h = plot(data(:, 1));
xData = get(h,'XData');
set(gca,'Xtick',linspace(xData(1),xData(end),numberOfXTicks))
Run Code Online (Sandbox Code Playgroud)