Establezca el color para el Scatterplot en Matplotlib

Suraj Joshi 17 diciembre 2020
Establezca el color para el Scatterplot en Matplotlib

Para establecer el color de los marcadores en Matplotlib, establecemos el parámetro c en el método matplotlib.pyplot.scatter().

Establecer el color de un marcador en el Scatterplot

import matplotlib.pyplot as plt

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

plt.scatter(x, y, c="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Simple Scatter Plot")
plt.show()

Resultado:

Establecer el color del marcador en el gráfico de dispersión

Aquí, ponemos el color de todos los marcadores de los diagramas de dispersión en rojo poniendo c="red" en el método scatter().

Si tenemos dos conjuntos de datos diferentes, podemos usar colores diferentes para cada conjunto de datos usando los diferentes valores del parámetro c.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7]
y1 = [2, 1, 4, 7, 4, 3, 2]
y2 = [4, 4, 5, 3, 8, 9, 6]

plt.scatter(x, y1, c="red")
plt.scatter(x, y2, c="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot of two different datasets")
plt.show()

Resultado:

Establecer un color diferente para cada conjunto de datos en scatterplot

Aquí, el conjunto de datos y1 está representado en la gráfica de dispersión por el color rojo mientras que el conjunto de datos y2 está representado en la gráfica de dispersión por el color verde.

Será difícil asignar el color manualmente cada vez a cada conjunto de datos si hay un gran número de conjuntos de datos. En tales casos, podemos usar colormap para generar los colores para cada conjunto de datos.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))

colors = cm.rainbow(np.linspace(0, 1, y.shape[0]))
for dataset, color in zip(y, colors):
    plt.scatter(x, dataset, color=color)

plt.xlabel("X")
plt.ylabel("Y")
plt.show()

Resultado:

Establecer automáticamente un color diferente para cada conjunto de datos

Genera diferentes colores para cada fila del array y y traza cada fila con un color diferente.

En lugar de usar el mapa de colores generado, también podemos especificar los colores que se usarán para las gráficas de dispersión en una lista y pasar la lista al método itertools.cycle() para hacer un ciclador de color personalizado. Para iterar sobre el color, usamos la función next().

import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))

color_cycle = itertools.cycle(
    ["orange", "pink", "blue", "brown", "red", "grey", "yellow", "green"]
)

for row in y:
    plt.scatter(x, row, color=next(color_cycle))

plt.xlabel("X")
plt.ylabel("Y")
plt.show()

Resultado:

Establecer automáticamente un color diferente para cada conjunto de datos

El método itertools.cycle() creará una lista cíclica de colores a partir del conjunto de colores dados, y cada fila se traza en el gráfico de dispersión eligiendo un color de la lista cíclica.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Matplotlib Scatter Plot

Artículo relacionado - Matplotlib Color