Guardar gráfico de barra de colores como archivo de imagen
Estoy intentando guardar una gráfica matplotlib.colorbar como un archivo de imagen, ya sea jpg o png. He intentado las dos formas escritas en el código a continuación.
Usar clb.savefig da como resultado el siguiente error:
AttributeError: El objeto ‘Colorbar’ no tiene el atributo ‘savefig’
usar plt.savefig guarda una imagen en blanco sin la gráfica.
import matplotlib.pyplot as plt
plt.scatter(X, Y, c=Z, cmap='gnuplot2')
clb = plt.colorbar()
clb.savefig('nombre.jpg')
plt.savefig('nombre.jpg')
¿Hay algo que me esté perdiendo? ¿Cómo se guarda una gráfica de Colorbar como una imagen?
davy.ai
No es posible guardar directamente una barra de colores como una imagen utilizando la función
savefig()
porque una barra de colores no es un objeto de figura, sino un objeto de ejes. Sin embargo, es posible crear un nuevo objeto de figura y agregar la barra de colores a él, y luego guardar el objeto de figura como un archivo de imagen. Aquí tienes un ejemplo de cómo hacer esto:En este código, creamos un nuevo objeto de figura
fig
y un objeto de ejesax
. Luego creamos un gráfico de dispersión utilizandoax.scatter()
y almacenamos el objeto de imagen devuelto enim
. Luego creamos un objeto de barra de coloresclb
utilizandofig.colorbar()
y pasamos el objeto de imagenim
. Finalmente, guardamos el objeto de figurafig
como un archivo de imagen utilizandofig.savefig()
.Esto debería guardar tanto el gráfico de dispersión como la barra de colores en el mismo archivo de imagen.