私は実際のx-y座標としてpythonでmatplotlib
でプロットしたいペア(a, b)
のリストを持っています。現在、2つのプロットを作成しています。リストのインデックスはx座標を表し、最初のプロットのy値はペアのa
s、2番目のプロットのy値はペアのb
sです。
明確にするために、私のデータは次のようになります。li = [(a,b), (c,d), ... , (t, u)]
私はplt.plot()
を不正確に呼び出すだけのワンライナーを実行したいのです。私がワンライナーを必要としなかったなら、私は自明にすることができました:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
すべての助けをありがとう!
によると この例 :
import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.Rand(N)
y = np.random.Rand(N)
plt.scatter(x, y)
plt.show()
生成されます:
データをペアからリストに展開するには、Zip
を使用します。
x, y = Zip(*li)
だから、ワンライナー:
plt.scatter(*Zip(*li))
あなたが厄介な配列を持っているなら、あなたはこれをすることができます:
import numpy as np
from matplotlib import pyplot as plt
data = np.array([
[1, 2],
[2, 3],
[3, 6],
])
x, y = data.T
plt.scatter(x,y)
リスト内のすべての点を結ぶ1本の線をプロットしたい場合
plt . plot ( li [ : ] )
plt . show ( )
これは、リストの最初から最後まで、リスト内のすべてのペアをデカルト平面上の点として結ぶ線をプロットします。私はこれがあなたが望んでいたものであることを願っています。