pyplot font python numpy matplotlib

font - subplot python



Matplotlib: guardar la trama en una matriz numpy (1)

En Python y Matplotlib, es fácil mostrar el gráfico como una ventana emergente o guardar el gráfico como un archivo PNG. ¿Cómo puedo en cambio guardar el gráfico en una matriz numpy en formato RGB?


Este es un truco útil para pruebas unitarias y similares, cuando necesita hacer una comparación de píxel a píxel con un gráfico guardado.

Una forma es usar fig.canvas.tostring_rgb y luego numpy.fromstring con el dtype apropiado. También hay otras formas, pero esta es la que suelo utilizar.

P.ej

import matplotlib.pyplot as plt import numpy as np # Make a random plot... fig = plt.figure() fig.add_subplot(111) # If we haven''t already shown or saved the plot, then we need to # draw the figure first... fig.canvas.draw() # Now we can save it to a numpy array. data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='''') data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,))