更改x轴标签而不影响x值?

4

假设我要绘制如下图表:

plot(1:1500,1:1500)

这将看起来像下面的图像,x轴从0开始到1500结束。
现在我不想要那个标签,而是希望x轴标签从1开始,以151结束(每个点的x轴增加1/10,另外偏移1)。
我只想改变x轴标签,不想改变plot函数传递的x输入向量,也不想绘制其他点。我只想让x轴标签以不同的偏移量开始,并以另一步增量增加,独立于传递给plot函数的x值。
这有可能吗?怎么办?这会让我的一些事情变得更容易。谢谢任何提示!
1个回答

8
您可以使用 XTick 和 XTickLabel 来自定义刻度线,具体方法请参考轴属性

示例:

x = 1:7;
y = rand(size(x));
plot(x,y)
set(gca, 'XTickLabel',{'Mon','Tue','Wed','Thu','Fri','Sat','Sun'})

screenshot


谢谢,XTickLabel属性对我很有用,因为我可以生成它的所有值。我仍然想知道是否可能直接设置诸如xAxisOffset=1,xAxisStepsize=1/10之类的内容,以便我不必构建完整的向量。但如果我没有误解这些属性,那就没有这样的东西 ): - stefan.at.kotlin
@stean.at.wpf:不是明确的。XTick允许指定MATLAB显示刻度线的位置。XTickLabel允许您自定义这些位置的标签。请注意,一旦手动设置它们,您将不再获得“auto”模式(尝试plot(1:100),然后调整图形大小,看看它如何根据宽度调整刻度线)。 - Amro
@Amro:也许我可以修改我的示例。您希望在x轴上获得确切的值是什么?是“1:1/10:151”吗?此外,您想以多频繁的方式显示它们,N个值等间距显示吗? - Amro
Amro,对我来说使用XTickLabel效果很好,所以我选择了你的答案作为正确答案 :-)(我只是将类似1:1/10:151的内容输入到XTickLabel中,并让Matlab决定显示标签的频率,这样就可以了)。 - stefan.at.kotlin

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