Diagrammes de dispersion Matplotlib

Nous pouvons utiliser la méthode scatter() dans pyplot pour tracer des diagrammes de dispersion.

La syntaxe de la méthode scatter() est la suivante :

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

Description du paramètre :

x,y: tableaux de même longueur, qui sont les points de données que nous allons tracer, données d'entrée.

s: taille des points, par défaut 20, peut aussi être un tableau, où chaque paramètre du tableau est la taille du point correspondant.

c: couleur des points, par défaut bleu 'b', peut aussi être un tableau ligne bidimensionnel RGB ou RGBA.

marker: style de point, par défaut petit cercle 'o'.

cmap: Colormap, par défaut None, un scalaire ou le nom d'une colormap, uniquement utilisé lorsque c est un tableau de flottants. S'il n'est pas déclaré, il s'agit de image.cmap.

norm: Normalize, par défaut None, luminosité des données entre 0 et 1, utilisé uniquement lorsque c est un tableau de nombres à virgule flottante.

vmin, vmax :réglage de la luminosité, ignoré lorsque le paramètre norm existe.

alpha :réglage de la transparence, entre 0 et 1, par défaut None, ce qui signifie opaque.

linewidths :longueur du point de marqueur.

edgecolors :couleur ou séquence de couleurs, par défaut 'face', les valeurs optionnelles sont 'face', 'none', None.

plotnonfinite :valeur booléenne, définit s'il faut dessiner des points en utilisant c non qualifié (inf, -inf ou nan).

**kwargs :autres paramètres.

L'exemple suivant transmet des tableaux de même longueur à la fonction scatter(), l'un pour les valeurs de l'axe des x et l'autre pour les valeurs de l'axe des y :

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])

plt.scatter(x, y)
plt.show()

Le résultat affiché est le suivant :

Définir la taille des marqueurs :

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.scatter(x, y, s=sizes)
plt.show()

Le résultat affiché est le suivant :

Personnalisez la couleur des points :

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])

plt.scatter(x, y, c=colors)
plt.show()

Le résultat affiché est le suivant :

Tracez deux ensembles de nuages de points :

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')

x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#6F9CC9')

plt.show()

Le résultat affiché est le suivant :

Utilisez des nombres aléatoires pour définir le nuage de points :

Exemple

import numpy as np
import matplotlib.pyplot as plt

# Graine pour le générateur de nombres aléatoires
np.random.seed(19680801)


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2  # rayons des points de 0 à 15

plt.scatter(x, y, s=area, c=colors, alpha=0.5) # Définir la couleur et la transparence

plt.title("EXAMPLE Scatter Test") # Définir le titre

plt.show()

Le résultat affiché est le suivant :

Palette de couleurs de la barre de couleurs

Le module Matplotlib fournit de nombreuses barres de couleurs disponibles.

Une barre de couleurs est comme une liste de couleurs, où chaque couleur a une valeur allant de 0 à 100.

Voici un exemple de barre de couleurs :

Pour définir une barre de couleurs, vous devez utiliser le paramètre cmap, avec la valeur par défaut 'viridis', puis définir les valeurs de couleur sur un tableau allant de 0 à 100.

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.show()

Le résultat affiché est le suivant :

Si vous voulez afficher la barre de couleurs, vous devez utiliser la méthodeplt.colorbar():

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.colorbar()

plt.show()

Le résultat affiché est le suivant :

Utilisez un paramètre de barre de couleurs différent, définissez cmap surafmhot_r:

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='afmhot_r')
plt.colorbar()
plt.show()

Le résultat affiché est le suivant :

Les valeurs du paramètre colorbar peuvent être les suivantes :

Noms de couleurs   Mots-clés réservés
Accent   Accent_r
Blues   Blues_r
BrBG   BrBG_r
BuGn   BuGn_r
BuPu   BuPu_r
CMRmap   CMRmap_r
Dark2   Dark2_r
GnBu   GnBu_r
Greens   Greens_r
Greys   Greys_r
OrRd   OrRd_r
Oranges   Oranges_r
PRGn   PRGn_r
Paired   Paired_r
Pastel1   Pastel1_r
Pastel2   Pastel2_r
PiYG   PiYG_r
PuBu   PuBu_r
PuBuGn   PuBuGn_r
PuOr   PuOr_r
PuRd   PuRd_r
Purples   Purples_r
RdBu   RdBu_r
RdGy   RdGy_r
RdPu   RdPu_r
RdYlBu   RdYlBu_r
RdYlGn   RdYlGn_r
Reds   Reds_r
Set1   Set1_r
Set2   Set2_r
Set3   Set3_r
Spectral   Spectral_r
Wistia   Wistia_r
YlGn   YlGn_r
YlGnBu   YlGnBu_r
YlOrBr   YlOrBr_r
YlOrRd   YlOrRd_r
afmhot   afmhot_r
autumn   autumn_r
binaire   binary_r
bone   bone_r
brg   brg_r
bwr   bwr_r
cividis   cividis_r
cool   cool_r
coolwarm   coolwarm_r
copper   copper_r
cubehelix   cubehelix_r
flag   flag_r
gist_earth   gist_earth_r
gist_gray   gist_gray_r
gist_heat   gist_heat_r
gist_ncar   gist_ncar_r
gist_rainbow   gist_rainbow_r
gist_stern   gist_stern_r
gist_yarg   gist_yarg_r
gnuplot   gnuplot_r
gnuplot2   gnuplot2_r
gris   gray_r
hot   hot_r
hsv   hsv_r
inferno   inferno_r
jet   jet_r
magma   magma_r
nipy_spectral   nipy_spectral_r
ocean   ocean_r
pink   pink_r
plasma   plasma_r
prism   prism_r
rainbow   rainbow_r
seismic   seismic_r
spring   spring_r
summer   summer_r
tab10   tab10_r
tab20   tab20_r
tab20b   tab20b_r
tab20c   tab20c_r
terrain   terrain_r
twilight   twilight_r
twilight_shifted   twilight_shifted_r
viridis   viridis_r
winter   winter_r

Autres extensions