10

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

我希望自定义 x 轴值而不是 1 到 9。他们应该是

100 200 400 1000 2000 5000 10000 20000 50000

反而。我试过

set(gca,'XTick', [100 200 400 1000 2000 5000 10000 20000 50000])

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

4

3 回答 3

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.
于 2014-03-25T12:06:00.630 回答
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)
于 2012-11-26T15:46:34.423 回答
3

尝试使用

x = [100 200 400 1000 2000 5000 10000 20000 50000];
y = rand(9,6); % Your y-axis data
plot(x, y);
set(gca,'XTick',x); % Change x-axis ticks
set(gca,'XTickLabel',x); % Change x-axis ticks labels to desired values.

请注意,由于使用 un x 轴的值/大小非常不同,您可以获得一些非常接近(且不可读)的 x 标签

于 2013-10-23T05:06:35.377 回答