4

1 つのプロット オブジェクトを使用して、1 つの numpy 配列から複数の曲線をプロットしたいと考えています。配列は次のような形式です。

position=np.array([[x11,x12,...,x1n],[y11,...,y1n],[x21,...,x2n],[y21,...],...])

次のコードのように実行する必要があります。

import matplotlib.pyplot as plt
import numpy as np

position=np.load("position.npy")

fig=plt.figure()
ax=fig.add_subplot(111,aspect='equal',autoscale_on=False)
p,=ax.plot(position[0],position[1],'y-',position[2],position[3],'y-',...)

しかし、私は次のような from を持つために最後の行が必要です:

p,=ax.plot(position)

plot コマンドのすべての位置 [i] を書き留めることはできません。これを行う方法はありますか?たとえば、特定の配列形状またはプロット オブジェクトの追加の引数を使用しますか? (xni,yni) が時間 i で n 番目の粒子になるアニメーションでいくつかの軌跡をプロットするには、これが必要です。

どうもありがとう

4

2 に答える 2

3

リストを一連の引数にアンパックできます。「y-」がそれほど重要でない場合は、これでうまくいきます。

p, = ax.plot(*position)

リスト内のすべての要素に適用される修飾子を追加する場合は、キーワード引数を使用します

p, = ax.plot(*position, linestyle = 'dashed', color = 'yellow')
于 2013-10-16T19:38:33.287 に答える
3

matplotlib.pyplot.plot(*args, **kwargs)のドキュメントには、配列If x and/or y is 2-dimensional, then the corresponding columns will be plottedから x と y の値をスライスできると書かれています。position

x = position[::2,:].T 
y = position[1::2,:].T
p,=ax.plot(x, y,'y-')
于 2013-10-16T22:32:20.507 に答える