時々、一連のデータ全体が利用できない状況があります。私はセンサーからの値をプロットするリアルタイムです。これらはユーザーのやりとりでオンとオフを切り替えることができます。したがって、値が常にシリーズになっているかどうかはわかりません。ユーザーはセンサーを起動してから、再度オン/オフすることができますが、この場合、matplotlibは最後のエンドポイントと新しいスタートポイントから線を引いていきます。matplotlibが欠損値を外挿/プロットするのはなぜですか?
次のように私はプロットされたデータだった:
[[ 5. 22.57011604]
[ 6. 22.57408142]
[ 7. 22.56350136]
[ 8. 22.56394005]
[ 9. 22.56790352]
[ 10. 22.56451225]
[ 11. 22.56481743]
[ 12. 22.55789757]
#Missing x vals. Still plots straight line..
[ 29. 22.55654716]
[ 29. 22.56066513]
[ 30. 22.56110382]
[ 31. 22.55050468]
[ 32. 22.56550789]
[ 33. 22.56213379]
[ 34. 22.5588932 ]
[ 35. 22.54829407]
[ 35. 22.56697655]
[ 36. 22.56005478]
[ 37. 22.5568161 ]
[ 38. 22.54621696]
[ 39. 22.55033493]
[ 40. 22.55079269]
[ 41. 22.55475616]
[ 41. 22.54783821]
[ 42. 22.55195618]]
は、私のプロット機能は、次のように簡略化にたくさん見える:それはそのようにし、なぜ
def plot(self, data)
for name, xy_dict in data.iteritems():
x_vals = xy_dict['x_values']
y_vals = xy_dict['y_values']
line_to_plot = xy_dict['line_number']
self.lines[line_to_plot].set_xdata(x_vals)
self.lines[line_to_plot].set_ydata(y_vals)
誰でも知っていますか?プロットする際に、非連続のxとyの値を世話しなければならないのですか? matplotlibはこれを自分で処理する必要があります。そうでなければリストを小さなリストに分割してプロットする必要がありますか?
本当に素敵です!先端に感謝します。私は現在、np.nanを使って、明らかに動作する回線を中断することを検討しています。私は最初にそれを試してみましょう。 – enrm
@Bartのマスキングオプションは素晴らしいです。私は通常、同じ効果 'x2 = np.insert(x、np.where(dx> 1)[0] +1、NaN)'を達成するためにNaNを使用し、マスクする必要はありません。 – Aguy
はい、私は同意します...私はマスクされた配列(無効な値を保持します)を好む傾向がありますが、この場合、無効な値を明示的に追加しているので、その必要はありません。 – Bart