在matlab图中自定义x轴值

Dev*_*von 10 matlab plot axis octave figure

目前,当我绘制一个9乘6的数组时,该数字的x轴只有1,2,3到9.Y轴显示正确的值.

而不是1到9我想要x轴值是自定义的.他们应该是

100 200 400 1000 2000 5000 10000 20000 50000

代替.我试过了

set(gca,'XTick', [100 200 400 1000 2000 5000 10000 20000 50000])
Run Code Online (Sandbox Code Playgroud)

但这不是正确的做法.是否有Matlab选项可以为x轴设置这些自定义值?为什么Matlab只使用1到9呢?

Fra*_*ius 7

如果你想保持x值之间的距离(例如1:9)并且只改变标签(而不是x值之间的距离),试试这个:

y = rand(9,6);
labels = [100 200 400 1000 2000 5000 10000 20000 50000];
plot(y);
set(gca, 'XTick', 1:length(labels)); % Change x-axis ticks
set(gca, 'XTickLabel', labels); % Change x-axis ticks labels.
Run Code Online (Sandbox Code Playgroud)


Heb*_*odo 4

您应该使用xTickLabel而不是XTick.

MATLAB 将每一列绘制为单独的曲线。因此,这意味着您有 6 条曲线,每条曲线有 9 个数据点。x 轴数据为 1-9,因为您没有为 MATLAB 提供任何用于绘图的数据。

此外,您可能想要错误的东西。这样做会给你带来相等的间距。它只会用你的数组替换 1-9。由于你的 x 轴数据不是等距的,所以会很奇怪。

你可能想这样做:

xdat = [100 200 400 1000 2000 5000 10000 20000 50000];
ydat = rand(9,6); % Your y-axis data
plot(xdat, ydat)
Run Code Online (Sandbox Code Playgroud)