2013-07-04 11 views
5

I Punkte in Tupel gesetzt haben, wie folgt aus:von Menge von Punkten in Tupeln

>>> s 
set([(209, 147), 
    (220, 177), 
    (222, 181), 
    (225, 185), 
    (288, 173), 
    (211, 155), 
    (222, 182)]) 

Was ist der richtige Weg Streudiagramm dieses Satzes zu tun?

Antwort

16

Sie tun können:

Oder sogar in einem "one-liner":

plt.scatter(*zip(*a)) 

zip() can be used to pack and unpack arrays und wenn Sie method(*list_or_tuple) Call, jedes Element in der Liste oder Tupel wird als Argument übergeben.

+0

Sehr guter Wahl! – Pablo

2
x = []; y=[] 
for point in s: 
    x.append(point[0]) 
    y.append(point[1]) 
plt.scatter(x,y) 
1

Wenn Sie NumPy Arrays verwenden möchten, können Sie verwenden:

data = np.array(list(s)) 

Erste s in eine Liste umwandeln und als zu einem NumPy Array.

Jetzt haben Sie einen Liste op Punkte, eine List von x und y die Sie verwenden können, zu erhalten:

xs = data.transpose()[0] # or xs = data.T[0] or xs = data[:,0] 
ys = data.transpose()[1] 

und ein Grundstück mit machen:

plt.plot(xs, ys, 'ro')