時折ギャップがある、効果的に「連続した」センサー読み取り値を含むデータセットがあります。
ただし、データが記録されていない期間がいくつかあります。これらのギャップは、サンプル期間よりも大幅に長くなります。
デフォルトでは、pyplot は各データ ポイントを次のデータ ポイントに接続します (ライン スタイルが設定されている場合)。
私は単にそこに行がないことを好みます。つまり、ラインを停止し、ギャップの後で再開したいのです。
y-value を使用してこれらのギャップ セクションに要素を追加しようとしましたNone
が、線をプロットの前の部分に戻すようです (奇妙なことに、これらの線はすべてのズーム レベルで表示されるわけではありません)。
私が考えたもう 1 つのオプションは、単純に を個別に呼び出して各ピースをプロットすることですplot
が、これは少し見苦しく面倒です。
これを達成するためのよりエレガントな方法はありますか?
編集:以下は、動作を示す最小限の実例です。最初のプロットは、私が避けようとしている結合線です。2 番目のプロットは、値の追加がNone
機能しているように見えることを示していますが、プロットのビューをパンすると、3 番目の図に示されているように、プロットの前の部分にジャンプする線が得られます。
import numpy as np
import matplotlib.pyplot as plt
t1 = np.arange(0, 8, 0.05)
t2 = np.arange(10, 14, 0.05)
t = np.concatenate([t1, t2])
c = np.cos(t)
fig = plt.figure()
ax = fig.gca()
ax.plot(t, c)
ax.set_title('Undesirable joining line')
t1 = np.arange(0, 8, 0.05)
t2 = np.arange(10, 14, 0.05)
c1 = np.cos(t1)
c2 = np.cos(t2)
t = np.concatenate([t1, t1[-1:], t2])
c = np.concatenate([c1, [None,], c2])
fig = plt.figure()
ax = fig.gca()
ax.plot(t, c)
ax.set_title('Ok if you don\'t pan the plot')
fig = plt.figure()
ax = fig.gca()
ax.plot(t, c)
ax.axis([-1, 12, -0.5, 1.25])
ax.set_title('Strange jumping line')
plt.show()