es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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:

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots()
    im = ax.scatter(X, Y, c=Z, cmap='gnuplot2')
    clb = fig.colorbar(im)
    
    fig.savefig('nombre.jpg')
    

    En este código, creamos un nuevo objeto de figura fig y un objeto de ejes ax. Luego creamos un gráfico de dispersión utilizando ax.scatter() y almacenamos el objeto de imagen devuelto en im. Luego creamos un objeto de barra de colores clb utilizando fig.colorbar() y pasamos el objeto de imagen im. Finalmente, guardamos el objeto de figura fig como un archivo de imagen utilizando fig.savefig().

    Esto debería guardar tanto el gráfico de dispersión como la barra de colores en el mismo archivo de imagen.

Comments are closed.