1

我有以下数据数组:

In [53]: data
Out[53]: array([  9.95000000e-05,   9.95000000e-05,   9.95000000e-05,
         ...
         ...
         9.95000000e-05])

当我绘制它的情节时,我得到:

在此处输入图像描述

我希望该图是一条直线,在 y 轴上有一些有意义的东西。这种行为的原因是什么?

4

1 回答 1

3

问题在于,为了清楚起见,iPython9.95000000e-05实际上9.9500000000000006e-05或或某个类似的数字。9.9499999999999979e-05

然而,Matplotlib 以完全精确的方式承认该数字,因此具有意想不到的行为。

解决方法就是将数字四舍五入到 iPython 中表示的值。

In [53]: round(data,7)
Out[53]: array([  9.95000000e-05,   9.95000000e-05,   9.95000000e-05,
         ... 
         ...
         ])

这提供了一个很好的情节:

In [54]: plot(round(data,7))

在此处输入图像描述

于 2013-08-09T08:54:27.727 回答