Comment tracer un nuage de points avec matplotlib ?

Published: 09 mars 2015

DMCA.com Protection Status

Simples exemples de comment tracer un nuage de points avec matplotlib:

Tracer une nuage de points avec scatter

Pour tracer simplement un nuage de points avec Matplotlib il existe la méthode "scatter" dans la classe pyplot (voir matplotlib.pyplot.scatter). Exemple simple d'utilisation:

Comment tracer une nuage de points avec matplotlib ?
Comment tracer une nuage de points avec matplotlib ?

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8]
y = [4,1,3,6,1,3,5,2]

plt.scatter(x,y)

plt.title('Nuage de points avec Matplotlib')
plt.xlabel('x')
plt.ylabel('y')

plt.savefig('ScatterPlot_01.png')
plt.show()

Augmenter la taille des points

On peut indiquer la taille de chaque points avec l'option s ("size") dans la fonction scatter():

Comment tracer une nuage de points avec matplotlib ?
Comment tracer une nuage de points avec matplotlib ?

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8]
y = [4,1,3,6,1,3,5,2]
size = [100,500,100,500,100,500,100,500]

plt.scatter(x,y,s=size)

plt.title('Nuage de points avec Matplotlib')
plt.xlabel('x')
plt.ylabel('y')
plt.savefig('ScatterPlot_02.png')
plt.show()

Pour changer la taille de tous les ponts on peut simplement faire s = 300 par exemple.

Changer la couleur des points

Pour modifier la couleur il y a l'option c dans la fonction scatter, exemple

Comment tracer une nuage de points avec matplotlib ?
Comment tracer une nuage de points avec matplotlib ?

import matplotlib.pyplot as plt

x = [1,2,3,4]
y = [4,1,3,6]
size = [100,500,100,500]

plt.scatter(x, y, s=size, c='coral')

x = [5,6,7,8]
y = [1,3,5,2]
size = [100,500,100,500]

plt.scatter(x, y, s=size, c='lightblue')

plt.title('Nuage de points avec Matplotlib')
plt.xlabel('x')
plt.ylabel('y')
plt.savefig('ScatterPlot_03.png')
plt.show()

Ajouter une légende

Enfin on peut aussi ajouter une légende

Comment tracer une nuage de points avec matplotlib ?
Comment tracer une nuage de points avec matplotlib ?

import matplotlib.pyplot as plt

x = [1,2,3,4]
y = [4,1,3,6]
size = [100,500,100,500]

plt.scatter(x, y, s=size, c='coral', label='class 1')

x = [5,6,7,8]
y = [1,3,5,2]
size = [100,500,100,500]

plt.scatter(x, y, s=size, c='lightblue', label='class 2')

plt.legend()

plt.title('Nuage de points avec Matplotlib')
plt.xlabel('x')
plt.ylabel('y')
plt.savefig('ScatterPlot_04.png')
plt.show()

Références

Image

of