No hay necesidad de configurar manualmente los colores. En su lugar, especifique un mapa de colores en escala de grises ...
import numpy as np
import matplotlib.pyplot as plt
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
# Plot...
plt.scatter(x, y, c=y, s=500)
plt.gray()
plt.show()

O, si prefiere una gama más amplia decmap mapas de color, también puede especificar el kwarg scatter. Para usar la versión inversa de cualquiera de estos, simplemente especifique la " _r" versión de cualquiera de ellos. Por ejemplo, en gray_rlugar de gray. Hay varios mapas de color en escala de grises prefabricados (p gray. Ej gist_yarg. binary, Etc.).
import matplotlib.pyplot as plt
import numpy as np
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
plt.scatter(x, y, c=y, s=500, cmap='gray')
plt.show()
mpl.cmtambién está disponible directamente comoplt.cm.plt.contour()oplt.contourf(), pero esa es una pregunta diferenteEn matplotlib, los colores grises se pueden dar como una cadena de un valor numérico entre 0-1.
Por ejemplo
c = '0.1'Luego puede convertir su tercera variable en un valor dentro de este rango y usarla para colorear sus puntos.
En el siguiente ejemplo, utilicé la posición y del punto como el valor que determina el color:
fuente
cargumento, con valores alfa en la cuarta columna. Si la tercera variable es Z, conshape=(n,1), entoncescolors = numpy.hstack((numpy.zeros_like(z), numpy.zeros_like(z), numpy.ones_like(z), z/z.max()))da un efecto muy agradable (por supuesto, se puede ajustar).plt.colorbar()hará esoA veces es posible que necesite trazar el color con precisión según el caso del valor x . Por ejemplo, puede tener un marco de datos con 3 tipos de variables y algunos puntos de datos. Y quieres hacer lo siguiente,
En este caso, es posible que deba escribir en una función corta para asignar los valores de x a los nombres de colores correspondientes como una lista y luego pasar esa lista al
plt.scattercomando.fuente