I usando matplotlib para trazar algunos datos en python y los gráficos requieren una barra de color estándar. Los datos consisten en una serie de matrices NxM que contienen información de frecuencia para que un diagrama simple de imshow() proporcione un histograma 2D con frecuencia de descripción del color. Cada matriz contiene datos en rangos diferentes, pero superpuestos. Imshow normaliza los datos en cada matriz en el rango 0-1, lo que significa que, por ejemplo, la gráfica de la matriz A, aparecerá idéntica a la gráfica de la matriz 2 * A (aunque la barra de color mostrará el doble de los valores). Lo que me gustaría es que el color rojo, por ejemplo, corresponda a la misma frecuencia en todos los trazados. En otras palabras, una sola barra de color sería suficiente para todas las tramas. Cualquier sugerencia sería muy apreciada.¿Cómo puedo crear una barra de color estándar para una serie de gráficos en python
Respuesta
La solución más fácil es llamar a clim (lower_limit, upper_limit) con los mismos argumentos para cada gráfico.
O simplemente pase los 'kremgs' vmin' y 'vmax' a' imshow'. –
no robar @ respuesta de ianilis, pero quería añadir un ejemplo ...
Hay varias formas, pero la más sencilla es sólo para especificar los vmin
y vmax
kwargs a imshow
. Alternativamente, puede hacer una instancia matplotlib.cm.Colormap
y especificarla, pero eso es más complicado de lo necesario para casos simples.
Aquí está un ejemplo rápido con una sola barra de colores para todas las imágenes:
import numpy as np
import matplotlib.pyplot as plt
# Generate some data that where each slice has a different range
# (The overall range is from 0 to 2)
data = np.random.random((4,10,10))
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
# Plot each slice as an independent subplot
fig, axes = plt.subplots(nrows=2, ncols=2)
for dat, ax in zip(data, axes.flat):
# The vmin and vmax arguments specify the color limits
im = ax.imshow(dat, vmin=0, vmax=2)
# Make an axis for the colorbar on the right side
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
fig.colorbar(im, cax=cax)
plt.show()
Esto sólo la mitad de la respuesta a la pregunta, o más bien comienza una nueva. Si cambia
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
a
data *= np.array([2.0, 1.0, 1.5, 0.5])[:,None,None]
su barra de colores va a ir de 0 a 0,5, que en este caso es de color azul oscuro a ligeramente azul más claro y no cubrirá toda la gama (0 a 2) . La barra de colores solo mostrará los colores de la última imagen o contorno, independientemente de vmin
y vmax
.
- 1. Agrupación de una serie en Python
- 2. ¿Cómo puedo calcular la mediana y la desviación estándar de una serie de números en Perl?
- 3. ¿Cómo puedo crear una película de Quicktime a partir de una serie de imágenes generadas?
- 4. ¿Cómo puedo crear una barra en la parte inferior de una aplicación Java, como una barra de estado?
- 5. Varíe la barra de color para dos datos de serie en Jqplot
- 6. ¿Cómo puedo crear gráficos ráster con la misma escala de color en R
- 7. Cómo crear una aplicación de barra de menú para Mac
- 8. ¿Puedo crear una "vista" en una lista de Python?
- 9. ¿Cómo puedo crear una matriz/lista de diccionarios en python?
- 10. Crear una barra de menú en WPF?
- 11. Cambiar el color de una barra de búsqueda en onProgressChanged
- 12. ¿Hay una biblioteca de JavaScript para crear gráficos?
- 13. ¿Cómo crear una leyenda para la barra 3D en matplotlib?
- 14. ¿Cómo puedo crear una interfaz para matplotlib?
- 15. Imprimir en una impresora estándar de Python?
- 16. ¿Cómo puedo escapar de una cadena escapada de barra invertida en Python?
- 17. ¿Qué biblioteca (gratuita) puedo usar para crear gráficos de gráficos de superficies 3D en C#?
- 18. crear una flecha con color de degradado
- 19. principiante de python unicode: cómo imprimir una serie de letras?
- 20. Obtener el color de una serie de datos de un gráfico de flot
- 21. ¿Puedo ocultar ToolTipText para una barra deslizadora?
- 22. Pase una serie de estructuras de Python a C
- 23. ¿Cómo escribo las pruebas para una biblioteca de gráficos?
- 24. ¿Cómo puedo crear una notificación en la barra de estado de Android?
- 25. Barras etiquetadas individualmente para gráficos de barras en matplotlib/Python
- 26. Creando una barra de color para una gráfica hecha con plt.fill
- 27. ¿Cómo puedo crear una conexión en serie Bluetooth entre un iPhone y un Arduino + Bluetooth Mate?
- 28. Cómo crear una barra de pestañas usando PhoneGap
- 29. Color de fondo para Tk en Python
- 30. cómo crear dinámicamente una instancia de una clase en python?
Prefiero utilizar matshow() o pcolor() porque imshow() suaviza la matriz cuando se muestra haciendo la interpretación más difícil. Entonces, a menos que la matriz sea de hecho una imagen, sugiero que pruebes las otras dos. – ianalis
@inalis - Puede especificar 'interpolation = 'nearest'' cuando use' imshow' si no desea la interpolación. 'pcolor' es mucho más lento que' imshow' para arreglos grandes, por lo que a menudo es mejor usar 'imshow' para matrices de gran tamaño. Por otro lado, 'pcolor' da salida vectorial, que a veces puede ser muy útil. –
posible duplicado de [Subplots Matplotlib 2, 1 barra de colores] (http://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbar) –