2013-07-04 10 views
5

Ho un insieme di punti in tuple, come questo:Fai scatter plot dal set di punti in tuple

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

Qual è il modo giusto di fare grafico a dispersione di questo insieme?

risposta

16

Si può fare:

O anche in un "one-liner":

plt.scatter(*zip(*a)) 

zip() can be used to pack and unpack arrays e quando si chiama con method(*list_or_tuple), ogni elemento della lista o tupla viene passato come argomento.

+0

Molto buona scelta! – Pablo

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

Se si desidera utilizzare le matrici NumPy è possibile utilizzare:

data = np.array(list(s)) 

Prima trasformare s a una lista e poi a un array NumPy.

Ora avete un punti lista op, per avere una lista di X e Y'S è possibile utilizzare:

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

e fare una trama con:

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