Matplotlib Diagrama de dispersión
Podemos usar el método scatter() en pyplot para dibujar diagramas de dispersión.
La sintaxis del método scatter() es la siguiente:
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)
Descripción de parámetros:
x,y: matrices de la misma longitud, es decir, los puntos de datos que vamos a dibujar en el diagrama de dispersión, datos de entrada.
s: tamaño del punto, por defecto 20, también puede ser una matriz, cada parámetro de la matriz es el tamaño del punto correspondiente.
c: color del punto, por defecto azul 'b', también puede ser una matriz bidimensional de filas RGB o RGBA.
marker: estilo del punto, por defecto un pequeño círculo 'o'.
cmap: Colormap, por defecto None, escalar o el nombre de un colormap, solo se usa cuando c es una matriz de números de coma flotante. Si no se declara, es image.cmap.
norm: Normalize, por defecto None, el brillo de los datos está entre 0-1, solo se usa cuando c es una matriz de números de coma flotante.
vmin,vmax:: configuración de brillo, se ignora cuando existe el parámetro norm.
alpha:: configuración de transparencia, entre 0-1, por defecto None, es decir, opaco.
linewidths:: longitud del punto de marcado.
edgecolors:: color o secuencia de colores, por defecto 'face', valores opcionales: 'face', 'none', None.
plotnonfinite:: valor booleano, configura si se usan c no finitos (inf, -inf o nan) para dibujar puntos.
**kwargs:: otros parámetros.
El siguiente ejemplo, la función scatter() recibe parámetros de matrices de la misma longitud, uno para los valores del eje x y otro para los valores del eje y:
Ejemplo
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()
El resultado se muestra a continuación:

Establecer el tamaño de los puntos:
Ejemplo
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()
El resultado se muestra a continuación:

Personalizar el color de los puntos:
Ejemplo
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()
El resultado se muestra a continuación:

Establecer dos conjuntos de diagramas de dispersión:
Ejemplo
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()
El resultado se muestra a continuación:

Usar números aleatorios para configurar el diagrama de dispersión:
Ejemplo
import matplotlib.pyplot as plt
# seed del generador de números aleatorios
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 # 0 to 15 point radii
plt.scatter(x, y, s=area, c=colors, alpha=0.5) # establecer color y transparencia
plt.title("EJEMPLO Scatter Test") # establecer título
plt.show()
El resultado se muestra a continuación:

Barra de colores Colormap
El módulo Matplotlib proporciona muchas barras de colores disponibles.
Una barra de colores es como una lista de colores, donde cada color tiene un valor que va de 0 a 100.
A continuación se muestra un ejemplo de barra de colores:

Para configurar la barra de colores se necesita usar el parámetro cmap, cuyo valor predeterminado es 'viridis', y luego los valores de color se establecen como una matriz de 0 a 100.
Ejemplo
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()
El resultado se muestra a continuación:

Si se desea mostrar la barra de colores, se debe usarplt.colorbar()método:
Ejemplo
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()
El resultado se muestra a continuación:

Cambie el parámetro de la barra de colores, establezca cmap aafmhot_r:
Ejemplo
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()
El resultado se muestra a continuación:

Los valores del parámetro de la barra de colores pueden ser los siguientes:
| Nombre del color | Palabras clave reservadas | |
|---|---|---|
| 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 | |
| binary | 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 | |
| gray | 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 |






