2017-09-02 7 views
0

、PLTグラフ作成のためにmatplotlibを使用する場合、どのように範囲を選択できますか?場合

x = np.linspace(0, 10, 20) 
y = x**2 + 2 

としてNP インポートmatplotlib.pyplotとして インポートnumpyのが通常plt.plot(x、y)のためのグラフを作る 私は無駄な部分を有しています。 私はこれを新しい配列にして追加すると考えました。

t = np.array([]) 
for i in range(len(x)): 
    if 4 < i and i < 9: 
     continue 
    t = np.append(t,x[i]) 

plt.plot(t,y) 

または新しいx = np.array([])

for i in range(len(x)): 
    if 4<i and i<9: 
     new_x = np.delete(x,i) 
plt.plot(new_x,y) 

だから、私は役に立たない部分を除去することができます。 誰も勤務時間についてもっと知っていますか?私は巨大なデータを持っています。

答えて

0

plt.xlim(4, 9)は何ですか?表示される領域が制限され、すべてのデータを渡すことができます。


本当に面白い部分をスライスする必要がある場合は、次のようにすることができます。あなたの例のように、インデックスではなく、xの値でデータを制限することに注意してください。

x = np.linspace(0, 10, 20) 
y = x**2 + 2 
interesting_indices = np.argwhere(np.logical_and(x > 4, x < 9)) 

plt.plot(x[interesting_indices], y[interesting_indices]) 

さらに思考:

  • は常にかなりのPython自体内の項目をループするよりも、numpyのの組み込み要素単位の演算を使用するようにしてください。呼び出しを通過した後、numpyはCおよびFortranベースのコアでデータを計算して処理します。通常、これによりパフォーマンスが向上します。
  • np.appendを使用すると、サイズが1増加した古いアレイのコピーが返され、古いアレイが削除されます。これはメモリの割り当てが多くなり、再び解放されるため、非常に不安定になります。性能面では、それも使用することが良いはずですlist

    a2 = [val for val in x if 4 < val < 9]

  • あなたがxを減らすようにもそうでない場合は、プロットが相互にデータを一致させることはできませんが、同じようにyを削減することを忘れないでください。

+0

いいえ、私はplt.plotを使用するときに間隔を設定する方法を探しています –

+0

いいえ。私はそれを行う方法の例で答えを編集しました。 – Jeronimo

+0

ありがとうございます。私が書いたコードは本当にひどいです(それは動かないのですが、笑)、あなたは賢明でした。 –

関連する問題