在MATLAB绘图中设置特定数量的刻度标记

5

我正在尝试找出如何在我正在使用MATLAB创建的图形的x轴上设置自定义刻度数,但我不确定是否可能。我看到了这个问题,似乎也在问同样的事情,但那个答案并没有帮助。

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创建具有5个x轴刻度的图形,以匹配我设置的5个XTickLabels。
data是一个大约为<3000x1>的双精度数组。
编辑:我还应该添加,我希望我的x轴值来自一个单独的数组。上面显示的数据数组对应于一个时间数组(未显示...我的错),数据数组中的每个值都有一个相应的时间数组中的值。由于我正在从数据数组中选择一个范围,所以我想选择相应的时间值并将其用作x标签。但显然,我不想在我的x轴上有3000个时间标签。希望现在更加清晰了。

你的绘图中x轴从1到数据长度延伸。我猜想你想要在x轴显示范围以外设置刻度,因此看不到它们。你希望x轴是什么样的? - Joe Serrano
我编辑了我的问题。基本上,我还有一个名为:time<3000x1>的变量,我想用它来生成我的x轴标签。 - Absolute Zero
尝试使用plot(time,data(:,1)),看看是否能得到更好的结果。 - Joe Serrano
1个回答

6
numberOfXTicks = 5;

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接