2

軸の制限が指定されていない場合、matplotlib はデフォルト値をナイスとして選択し、プロットされるリストの最小値と最大値の上下の数値を丸めます。

時々、データに外れ値があり、軸が選択されたときにそれらを含めたくないことがあります。外れ値を検出できますが、実際にそれらを削除したくはありません。プロットの領域を超えているだけです。軸を外れ値を含まないリストの最小値と最大値に設定しようとしましたが、それはそれらの値が軸上に正確にあり、プロットの境界がティッカー ポイントと一致しないことを意味します。

軸の制限が特定の範囲内にあるように指定する方法はありますが、matplotlib に適切なポイントを選択させますか?

たとえば、次のコードは、y 軸の範囲が自動的に (0.140,0.165) に設定された適切なプロットを生成します。

from matplotlib import pyplot as plt
plt.plot([0.144490353418, 0.142921640661, 0.144511781706, 0.143587888773, 0.146009766101, 0.147241517391, 0.147224266382, 0.151530932135, 0.158778411784, 0.160337332636])
plt.show()

最初のコード例からプロットします。

データに外れ値を導入し、制限を手動で設定した後、y 軸の制限は 0.145 をわずかに下回り、0.160 をわずかに上回るように設定されます。

from matplotlib import pyplot as plt
plt.plot([0.144490353418, 0.142921640661, 0.144511781706, 0.143587888773, 500000, 0.146009766101, 0.147241517391, 0.147224266382, 0.151530932135, 0.158778411784, 0.160337332636])
plt.ylim(0.142921640661, 0.160337332636)
plt.show()

2 番目のコード例からプロットします。

制限を設定するときに外れ値を無視するか、軸を「0.142921640661未満」および「0.160337332636を超える」に設定するようにmatplotlibに指示する方法はありますが、適切な場所を決定させますか? 私のデータセットはすべて異なるスケールで発生するため、単純に数値を切り上げたり切り捨てたりすることはできません。

4

2 に答える 2

1

dataマスクされた配列を作成できます:

from matplotlib import pyplot as plt
import numpy as np

data = [0.144490353418, 0.142921640661, 0.144511781706, 0.143587888773, 500000, 0.146009766101, 0.147241517391, 0.147224266382, 0.151530932135, 0.158778411784, 0.160337332636]
data = np.ma.array(data, mask=False)
data.mask = data>0.16
plt.plot(data)
plt.show()

ここに画像の説明を入力

于 2013-05-14T13:17:45.863 に答える