para matrices librerias graficos grafico graficas graficar grafica dispersion diagrama barras python matplotlib plot scatter

python - matrices - Diagrama de dispersión Matplotlib; color como una función de una tercera variable



librerias para graficar en python (2)

Quiero hacer un diagrama de dispersión (usando matplotlib) donde los puntos están sombreados según una tercera variable. Me he acercado mucho a esto:

plt.scatter(w, M, c=p, marker=''s'')

donde w y M son los puntos de datos yp es la variable con la que quiero sombrear.
Sin embargo, quiero hacerlo en escala de grises en lugar de en color. ¿Alguien puede ayudar?


En 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:

from matplotlib import pyplot as plt x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [125, 32, 54, 253, 67, 87, 233, 56, 67] color = [str(item/255.) for item in y] plt.scatter(x, y, s=500, c=color) plt.show()


No es necesario 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 bien, si prefiere una gama más amplia de mapas de color , también puede especificar el kwarg de cmap para scatter . Para utilizar la versión invertida de cualquiera de estos, simplemente especifique la versión " _r " de cualquiera de ellos. Por ejemplo, gray_r lugar de gray . Hay varios gist_yarg gray escala de grises pre-hechos (por ejemplo, gray , 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()