次のデータ配列があります。
In [53]: data
Out[53]: array([ 9.95000000e-05, 9.95000000e-05, 9.95000000e-05,
...
...
9.95000000e-05])
それをプロットすると、次のようになります。
プロットは、y 軸に意味のある直線になると思います。この動作の原因は何ですか?
次のデータ配列があります。
In [53]: data
Out[53]: array([ 9.95000000e-05, 9.95000000e-05, 9.95000000e-05,
...
...
9.95000000e-05])
それをプロットすると、次のようになります。
プロットは、y 軸に意味のある直線になると思います。この動作の原因は何ですか?
問題は、明確にするためにiPythonが丸めた9.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))