In Python e Matplotlib, è facile visualizzare il grafico come finestra popup o salvare il grafico come file PNG. Come posso invece salvare la trama su una matrice numpy in formato RGB?Matstotlib: salva trama su array numpy
15
A
risposta
35
Questo è un trucco pratico per i test di unità e simili, quando è necessario eseguire un confronto pixel-a-pixel con una trama salvata.
Un modo è utilizzare fig.canvas.tostring_rgb
e quindi numpy.fromstring
con il tipo appropriato. Ci sono anche altri modi, ma questo è quello che tendo ad usare.
E.g.
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,))
Problemi correlati
- 1. salva array numpy in modalità append
- 2. Salva CvSeq su un array
- 3. Python/Numpy - Salva array con colonne e titoli di riga
- 4. Conversione di Numpy Array su OpenCV Array
- 5. Salva trama R sul web server
- 6. Salva trama con un determinato formato
- 7. Salva array come xml
- 8. SciPy interpolazione su un array NumPy
- 9. Numpy come iterare su colonne di array?
- 10. Numpy, dot products su array multidimensionali
- 11. Grande su disk array per numpy
- 12. Come si crea una trama verticale numpy?
- 13. Matstotlib matshow con molte stringhe
- 14. array numpy con cython
- 15. Aggiungi un array NumPy a un array NumPy
- 16. Salva NSMutableArray su disco
- 17. Matstotlib: etichette colorazione asse/segno di spunta
- 18. Numpy array multidimensionale affettare
- 19. Numpy matrix to array
- 20. Rotazione numpy array 2D
- 21. indici circolari numpy array
- 22. Zero pad numpy array
- 23. Numpy - array vs asarray
- 24. Componi array numpy
- 25. Array invertito in numpy?
- 26. Salva array nel database mysql
- 27. Mongoose - Salva array di stringhe
- 28. Salva l'immagine di trama Matplotlib nel modello Django
- 29. Assegnazione array numpy mediante slicing
- 30. Matstotlib: riposizionamento di una sottotrama in una griglia di sottotrame
Eccellente! 12345 – Petter
È supportato solo su determinati back-end? Sembra che non funzioni con 'macosx' backend (' tostring_rgb') non trovato. – mirosval
Funziona su Agg, aggiungi 'matplotlib.use ('agg')' prima di 'import matplotlib.pyplot as plt' per usarlo. – mirosval