在 MATLAB 2014B 中反转 xticklabels

Reversing xticklabels in MATLAB 2014B

我是 运行 Matlab 2014b 并且正在尝试定义我的 xticklabels 但它不起作用。这是我的代码:

x = 0:1000:10000;
y = rand(1,11);
plot(x,y)
xlim([0 10000])
ax.XTick = [0 2000 4000 6000 8000 10000];
ax.XTickLabel = {'10000', '8000', '6000', '4000', '2000', '0'};
xlabel('Years Before Present','fontsize',8)

我希望 xticklabels 反转(不改变现在几年前的情节)。我哪里错了?

您需要使用 ax 获取当前轴,然后在初始化 ax.XTickLabel、flip/reverse 之后在代码中使用 ax.XTickLabel = flip(ax.XTickLabel)ax.XTickLabel = flip(ax.XTickLabel) 刻度标签ax.XTickLabel = ax.XTickLabel(end:-1:1).

这是比较 beforeafter 原始方法和建议方法作为完全可运行代码的效果的代码 -

x = 0:1000:10000; %// Inputs
y = rand(1,11);

figure,
plot(x,y)
ax = gca;
xlim([0 10000])
ax.XTick = [0 2000 4000 6000 8000 10000];
ax.XTickLabel = {'10000', '8000', '6000', '4000', '2000', '0'};
xlabel('Years Before Present','fontsize',8), title('BEFORE')

figure,
plot(x,y)
ax = gca;                                %// get current axes [CHANGE-1]
xlim([0 10000])
ax.XTick = [0 2000 4000 6000 8000 10000];
ax.XTickLabel = {'10000', '8000', '6000', '4000', '2000', '0'};
ax.XTickLabel = ax.XTickLabel(end:-1:1)  %// flip ticklabels [CHANGE-2]
xlabel('Years Before Present','fontsize',8), title('AFTER')

输出-