1

次のデータ配列があります。

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

それをプロットすると、次のようになります。

ここに画像の説明を入力

プロットは、y 軸に意味のある直線になると思います。この動作の原因は何ですか?

4

1 に答える 1

3

問題は、明確にするために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))

ここに画像の説明を入力

于 2013-08-09T08:54:27.727 に答える