2016-03-01 25 views
14

Sto tentando di creare un grafico a dispersione. Ho una lista di numeri da 0 a 17 e una matrice con 18 valori. Posso tracciare i dati come un complotto linea, ma quando provo a tracciare come scatter ricevo un messaggio di errore non capisco: TypeError: ufunc 'sqrt' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''Grafico a dispersione matplotlib con errore sconosciuto

Che cosa significa questo messaggio di errore significa e come posso ottenere i dati per tracciare come spargere?

import numpy as np 
import matplotlib.pyplot as plt 

y = [7316.0, 7453.25, 7518.25, 7711.5, 7448.0, 7210.25, 7416.75, 6960.75, 
    7397.75, 6397.5, 5522.75, 5139.0, 5034.75, 4264.75, 5106.0, 3489.5, 
    4712.0, 4770.0] 
x = np.arange(0,18,1) 

plt.rcParams['legend.loc'] = 'best' 
plt.figure(1) 
plt.xlim(0, 20) 
plt.ylim(0, 10000) 
plt.scatter(x, y, 'r') 
plt.show() 

risposta

31

Verificare il scatter documentation. Il terzo argomento è per la dimensione dei punti e dovrebbe essere scalare o array_like. Presumo che 'r' sia per il colore, quindi:

plt.scatter(x, y, c='r') 
+1

Grazie ora ha senso. Lo stavo leggendo ma omettendo la porzione c = poiché non è necessario nei grafici normali. Sembra sciocco avere una sintassi diversa tra i due stili. –

Problemi correlati