Saya memiliki daftar pasangan (a, b)
yang ingin saya plot dengan matplotlib
python sebagai koordinat xy sebenarnya. Saat ini, ia membuat dua plot, di mana indeks daftar memberikan koordinat x, dan nilai y plot pertama adalah a
s pada pasangan dan nilai y plot kedua adalah b
s pada pasangan.
Untuk memperjelas, data saya terlihat seperti ini: li = [(a,b), (c,d), ... , (t, u)]
Saya ingin melakukan one-liner yang hanya menyebut plt.plot()
salah. Jika saya tidak memerlukan one-liner, saya bisa melakukannya dengan mudah:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
Bagaimana caranya agar matplotlib memplot pasangan ini sebagai koordinat xy?
python
matplotlib
plot
coordinates
CodeKingPlusPlus
sumber
sumber
plt.scatter( * xy.T )
karya: pendek dan tidak jelas untukx, y = xy.T; plt.scatter( x, y )
x, y = zip(*li)
adalah kode python yang sangat elegan! Saya telah melakukan dua baris kode yang lebih lurus ke depan dengan kompresi daftar pada setiap baris (seperti pertanyaan asli)plt.scatter
contoh acak dengan pertanyaan.Jika Anda memiliki array numpy, Anda dapat melakukan ini:
sumber
np.array
daridata=np.array([[x1,y1],[x2,y2],etc.])
dan menggunakanplt.plot(data)
. Saya selalu harus memberikan dua array, bukan array array?plt.plot(*data.T)
yang melakukan hal yang sama seperti di atas tetapi melewati langkah perantara.Jika Anda ingin menggambar satu garis yang menghubungkan semua titik dalam daftar
Ini akan memplot sebuah garis yang menghubungkan semua pasangan dalam daftar sebagai titik-titik pada bidang Kartesius dari awal daftar hingga akhir. Saya harap ini yang Anda inginkan.
sumber
scatter()
.