web-dev-qa-db-fra.com

Diagramme de dispersion Matplotlib avec erreur inconnue

J'essaie de créer un nuage de points. J'ai une liste de nombres de 0 à 17 ainsi qu'un tableau avec 18 valeurs. Je peux tracer les données sous forme de tracé linéaire mais lorsque j'essaie de tracer sous forme de nuage de dispersion, j'obtiens un message d'erreur que je ne comprends pas: 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''

Que signifie ce message d'erreur et comment puis-je obtenir les données à tracer comme un nuage de points?

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()
27

Vérifiez le documentation scatter . Le troisième argument est pour la taille des points et doit être scalaire ou array_like. Je suppose 'r' est pour la couleur, procédez comme suit:

plt.scatter(x, y, c='r')
56
gsmafra