告诉 matlab plot 使用不同的数基系统

Tell matlab plot to use different number base system

我正在使用一个向量 t = [YYYYMM],其中包含我的日期,并且我将它绘制在向量 x 上:plot(t,x); 我的问题是,如何调整 x 轴的比例,使 199402 和 199502 之间不存在 100 个值,而只有 12 个值? 我尝试使用 XTick,但没有成功,并将 t 替换为 [1:size(t)],然后使用

格式化所有内容
set(gca, 'XTickLabel', labels)

由于我不完全理解的原因,这会产生偏差。

我已经研究了 dateticks() 选项,但不知道如何在我的情况下实施它。

您不想将 XTick 设置为 1:size(t),因为刻度位置是相对于 XData 的,在您的情况下 values[= t 的 22=]。相反,您想将 XTick 设置为 t 本身的 12 个元素。

plot(t,x)

%// New tick locations
newticks = t(round(linspace(1, numel(t), 12));

set(gca, 'XTick', newticks)

%// If you want to reset to using all ticks again
set(gca, 'XTick', t)

执行此操作时,标签应该会自动更新。