我有以下数据数组:
In [53]: data
Out[53]: array([ 9.95000000e-05, 9.95000000e-05, 9.95000000e-05,
...
...
9.95000000e-05])
当我做一个情节时,我得到:
我希望情节是一条直线,在y轴上有一些有意义的东西。这种行为的原因是什么?
答案 0 :(得分:3)
问题在于,9.95000000e-05
实际上是9.9500000000000006e-05
或9.9499999999999979e-05
,或者为了清晰起见,iPython会将一些相同的数字用于。{/ p>
然而,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))