如何强制Matlab在X和Y轴上显示足够的数字?

3
问题在于Matlab“截取”了一些数字,我无法识别实际值。看一下屏幕截图,Y轴上有很多“0.0156”,而我希望看到“0.01562”、“0.01564”、“0.01566”等等。
如何让Matlab显示足够的数字,以便我能够识别实际值?

请查看坐标轴的YTick和YTickLabel属性。 - Amro
如果您能够发布用于创建所示图形的数据样本,将会很有帮助。 - Amro
@Amro 抱歉,我丢失了这些数据。但是我在这个问题中找到了类似的内容:http://stackoverflow.com/questions/11599065/creating-graph-from-text-file-where-axis-x-is-date-with-millisecond-precision-an - Oleg Vazhnev
3个回答

2

一个技巧是调用:

set(gca, 'YTickLabel', get(gca,'YTick'))

这里是使用你的其他问题中的数据前后对比图:

before after

创建于:

y = [
    0.0155260005803643
    0.0155280030632315
    0.0155270018379389
    0.0155260006126463
    0.0155239981620611
    0.0155249993873537
];

plot(y)

已经发现这个不准确工作,请参见https://dev59.com/bWbWa4cB1Zd3GeqPYZlM#SFoFoYgBc1ULPQZFAsIs。 - Oleg Vazhnev
@javapowered:它确实可以工作,但会产生副作用;它将ticks mode设置为“manual”,这意味着如果轴限制发生更改(例如缩放/平移,这是您在此问题中从未提到的,因此您不能责怪我!),MATLAB将不会自动更新刻度标签。解决方案是每次轴限制更改时手动更新刻度(通过侦听属性更改事件,就像在您的其他问题中指出的那样)。 - Amro
@javapowered:我在你的另一个问题中暗示的同样事实... 我想说的是,如果您不在问题描述中提供应用程序的上下文,我们无法考虑到所有可能出现的问题。 - Amro
好的,但是这个解决方案更好地解决了我的问题。在这里添加链接,以便其他人可以找到它,以防万一 :) - Oleg Vazhnev

1

为什么我要使用一些第三方函数?我期望Matlab在核心功能中能够正确地编写诸如“轴数”之类的基本内容。 - Oleg Vazhnev
@javapowered:那是一個非常有用的函數。 - Amro

1

将 set(gca, 'YTickLabel', get(gca,'YTick')) 放在 plot 命令或 subplot 命令之后,就像我为一些 CFD 工作所做的那样,可以按照 Amro 的建议正常工作。

有时压力和速度差异可能非常小,您需要在非常小的刻度线上绘图。


欢迎来到SO。您能否给出“在(子)图命令之后立即执行”的示例? - Teepeemm

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