Ich habe eine Liste von Paaren (a, b)
, Die ich mit matplotlib
in python als tatsächliche xy-Koordinaten zeichnen möchte. Derzeit werden zwei Diagramme erstellt, wobei Der Index der Liste gibt die x-Koordinate an, und die y-Werte des ersten Diagramms sind die a
s in den Paaren und die y-Werte des zweiten Diagramms sind die b
s in den Paaren.
Zur Verdeutlichung sehen meine Daten folgendermaßen aus: li = [(a,b), (c,d), ... , (t, u)]
Ich möchte einen Einzeiler erstellen, der nur plt.plot()
als falsch aufruft. Wenn ich keinen Einzeiler benötigte, könnte ich Folgendes tun:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
Danke für all die Hilfe!
Gemäß dieses Beispiel :
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()
wird herstellen:
Um Ihre Daten aus Paaren in Listen zu entpacken, verwenden Sie Zip
:
x, y = Zip(*li)
Also, der Einzeiler:
plt.scatter(*Zip(*li))
Wenn Sie ein Numpy-Array haben, können Sie dies tun:
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)
plt.show()
Wenn Sie eine einzelne Linie zeichnen möchten, die alle Punkte in der Liste verbindet
plt . plot ( li [ : ] )
plt . show ( )
Dies zeichnet eine Linie, die alle Paare in der Liste als Punkte auf einer kartesischen Ebene vom Anfang der Liste bis zum Ende verbindet. Ich hoffe das ist was du wolltest.