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,))