web-dev-qa-db-fra.com

Python matplotlib superpose des nuages ​​de points

J'utilise Python matplotlib. Je veux superposer des diagrammes de dispersion. Je sais comment superposer des graphiques en ligne continue avec des commandes:

>>> plt.plot(seriesX)
>>> plt.plot(Xresampl)
>>> plt.show()

Mais cela ne semble pas fonctionner de la même manière avec scatter. Ou peut-être en utilisant plot () avec un autre argument spécifiant le style de ligne. La façon de procéder? Merci

21
kiriloff

Vous appelez simplement la fonction scatter deux fois, matplotlib superposera les deux tracés pour vous. Vous souhaiterez peut-être spécifier une couleur, car la valeur par défaut pour tous les diagrammes de dispersion est le bleu. C'est peut-être pourquoi vous ne voyiez qu'un seul complot.

import numpy as np
import pylab as plt

X = np.linspace(0,5,100)
Y1 = X + 2*np.random.random(X.shape)
Y2 = X**2 + np.random.random(X.shape)

plt.scatter(X,Y1,color='k')
plt.scatter(X,Y2,color='g')
plt.show()

enter image description here

35
Hooked

Si vous souhaitez continuer à utiliser le tracé, vous pouvez utiliser l'objet axe renvoyé par les sous-tracés:

import numpy as np
import pylab as plt

X = np.linspace(0,5,100)
Y1 = X + 2*np.random.random(X.shape)
Y2 = X**2 + np.random.random(X.shape)

fig, ax = plt.subplots()
ax.plot(X,Y1,'o')
ax.plot(X,Y2,'x')
plt.show()
6
Gadi Oron