Exemples de comment créer un nuage de points de plusieurs couleurs avec matplotlib:
Combiner deux nuages de points avec des couleurs différentes
Pour modifier la couleur il y a l'option c dans la fonction scatter, exemple simple combinant deux nuages de points avec des couleurs différentes:
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [4,1,3,6]
plt.scatter(x, y, c='coral')
x = [5,6,7,8]
y = [1,3,5,2]
plt.scatter(x, y, c='lightblue')
plt.title('Nuage de points avec Matplotlib')
plt.xlabel('x')
plt.ylabel('y')
plt.savefig('ScatterPlot_05.png')
plt.show()
Nuage de points avec plusieurs couleurs avec une colormap
Exemple de comment associer une couleur à un nombre donné représentant une classe (source):
import matplotlib.pyplot as plt
import numpy as np
a = np.array([[ 1, 2, 3, 4, 5, 6, 7, 8 ],
[ 1, 4, 8, 14, 12, 7, 3, 2 ]])
categories = np.array([0, 2, 1, 1, 1, 2, 0, 0])
colormap = np.array(['r', 'g', 'b'])
plt.scatter(a[0], a[1], s=100, c=colormap[categories])
plt.savefig('ScatterClassPlot.png')
plt.show()
Nuage de points avec des couleurs personnalisées
Autre exemple:
import matplotlib.pyplot as plt
import numpy as np
a = np.array([[ 1, 1.5, 2.5, 3, 3.5, 6.5, 5, 6, 7, 8, 7.5 ],
[ 8, 11, 10, 8, 12, 4.3, 4, 7, 2, 5, 7.5 ]])
categories = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]) # Supervised
#categories = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # Unsupervised
color1=(0.69411766529083252, 0.3490196168422699, 0.15686275064945221, 1.0)
color2=(0.65098041296005249, 0.80784314870834351, 0.89019608497619629, 1.0)
colormap = np.array([color1,color2])
plt.scatter(a[0], a[1], s=500, c=colormap[categories])
plt.scatter(2, 6, s=500, c='k')
plt.text(2.4, 5.7, '?', fontsize=16)
plt.text(1.4, 8, 'Label 1', fontsize=16)
plt.text(6.5, 5.8, 'Label 2', fontsize=16)
plt.title('Supervised Learning')
plt.savefig('ScatterClassPlot.png')
plt.show()
Références
Liens | Site |
---|---|
matplotlib.pyplot.scatter | Matplotlib doc |
Nuage de points avec Matplotlib | science-emergence |
Using multiple colors in matplotlib plot | stackoverflow |