hacer graficos grafico graficas grafica ejes dispersion diagrama como python matplotlib

graficos - python diagrama de dispersion



Una barra de colores logarítmica en matplotlib diagrama de dispersión (1)

Ahora hay una sección de la documentación que describe cómo funciona el mapeo de colores y la normalización (que es un enlace a la documentación de desarrollo, pero se aplica a todas las versiones de mpl. Estará en la documentación principal ''pronto'')

La forma en que matplotlib realiza el mapeo de color es en dos pasos, primero una función Normalize (envuelta por las subclases de matplotlib.colors.Normalize ) que mapea los datos que entrega en [0, 1] . El segundo paso asigna valores en [0,1] -> espacio RGBA.

Solo necesita usar la clase de normalización LogNorm , pasada con la norm kwarg.

plt.scatter(x,y,edgecolors=''none'',s=marker_size,c=void_fraction, norm=matplotlib.colors.LogNorm())

Cuando desee escalar / modificar datos para trazar, es mejor dejar que matplotlib realice las transformaciones que hacerlo usted mismo.

  • Normalize doc
  • LogNorm doc
  • matplotlib.color doc

Me gustaría hacer que los colores de los puntos en el gráfico de dispersión correspondan al valor de la fracción vacía, pero en una escala logarítmica para amplificar las diferencias. Hice esto, pero ahora cuando hago plt.colorbar (), muestra el registro de la fracción vacía, cuando realmente quiero la fracción vacía real. ¿Cómo puedo hacer una escala de registro en la barra de colores con las etiquetas apropiadas de la fracción vacía, que pertenece a [0.00001.1]?

Aquí hay una imagen de la trama que tengo ahora, pero la barra de colores de la fracción vacía no está apropiadamente etiquetada para corresponderse con la verdadera fracción vacía, en lugar del registro de la misma.

fig = plt.figure() plt.scatter(x,y,edgecolors=''none'',s=marker_size,c=np.log(void_fraction)) plt.colorbar() plt.title(''Colorbar: void fraction'')

Gracias por tu ayuda.