消除轴上的负零点

时间:2017-05-10 01:21:25

标签: matlab plot

我发现在某些情况下,MATLAB会打印负-0.0作为轴刻度。我该怎样消除这个?

问题代码

y = linspace(-.4,.3,100);
plot(y)
ax = gca();
ax.YAxis.TickLabelFormat = '%.1f'`

此代码生成类似this的图表,而不是零刻度读取' 0.0'它读作' -0.0'。

我认为这里的关键是Y轴的最大值和最小值之间的间隔不能完全表示为浮点数,因此“零”' tick实际上位于-5.6e-17。如果改为使用格式ax.YAxis.TickLabelFormat = '%.1e'

,则可以看到此信息

对于挑剔的格式化原因,我真的更喜欢我的所有轴刻度具有相同的位数(即-0.1,0.0,0.1而不是-0.1,0,0.1)。有没有办法消除这种格式中的负零?

在MacOS Sierra 10.12.4上使用MATLAB2017a

1 个答案:

答案 0 :(得分:0)

您选择浮点格式,您可以使用floating point accuracy issues获得所需内容。您可以定义y = linspace(-.4,.3,100)+eps;来解决它......