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_r
lugar 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.cm
tambié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
c
argumento, 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.scatter
comando.fuente