Sto graficando i dati da una matrice numpy usando matplotlib imshow. Tuttavia, alcuni punti non contengono dati. Ho inizializzato l'array usando np.zeroes, quindi questi punti stanno trascinando verso il basso l'intera mappa. So che nessuno dei dati avrà mai un valore di 0.0. C'è un modo per me di dire alla routine imshow di ignorare questi punti (cioè lasciarli bianchi, quindi è chiaro che sono vuoti)?Punti di impostazione senza dati in bianco con Matplotlib imshow
risposta
Hai provato a istanziare l'array con NaNs anziché zeri per vedere se l'impostazione predefinita di matplotlib ignorerà i NaN in un modo che funzioni per te? Si potrebbe anche provare semplicemente utilizzando l'indicizzazione logica per rendere le posizioni di 0 pari a NaN a destra prima di tracciare:
my_data[my_data == 0.0] = numpy.nan
In alternativa, è possibile utilizzare l'idea Nan e follow this link's advice e utilizzare NumPy mascherato matrici al fine di tracciare le voci NaN come colore preferisci.
Penso che potresti anche usare l'idea di quel collegamento per creare un array mascherato anche nelle posizioni zero, senza passare all'opzione NaN se non ti piace.
Applica l'array con Python None per i punti che non devono essere visualizzati.
y_series_1 = [1,None,None,4,5]
y_series_2 = [1,2,5,6,7]
Per questo esempio, la linea y_series_1 scomparirà dall'asse X al secondo e al terzo punto. Il risultato sono interruzioni di riga (la riga inizia, scompare, quindi continua al quarto punto), che credo sia il comportamento che stai cercando.
- 1. matplotlib imshow() con punti di dati spaziati irregolari
- 2. Matplotlib imshow con EPS
- 3. matplotlib plot e imshow
- 4. Matplotlib imshow() estendere "adattare larghezza"
- 5. assi non lineari per imshow in matplotlib
- 6. Impedisci l'anti-aliasing per imshow in matplotlib
- 7. Rifletti assi xey per Matplotlib imshow()
- 8. Come disattivare l'effetto sfocato di imshow() in matplotlib?
- 9. Visualizzazione di grafici a dispersione con punti sovrapposti in matplotlib
- 10. Matplotlib: nessun effetto di set_data in imshow per la trama
- 11. Inverti immagine visualizzata dal imshow in matplotlib
- 12. python matplotlib imshow() segni di spunta personalizzati
- 13. Date nell'asse x per un grafico matplotlib con imshow
- 14. Come posso cambiare la scala di imshow in matplotlib senza allungare l'immagine?
- 15. Cosa fa matplotlib `imshow (interpolation = 'nearest')` do?
- 16. Come aggiornare la finestra imshow() di matplotlib in modo interattivo?
- 17. Matplotlib: Qual è la funzione di cmap in imshow?
- 18. asse Ridimensionare in Matplotlib imshow in funzione unica chiamata
- 19. Impostazione di Yaxis in Matplotlib usando Pandas
- 20. impostazione limite asse y in matplotlib
- 21. Impostazione manuale di xticks con xaxis_date() in Python/matplotlib
- 22. Impostazione dei punti di interruzione in Java
- 23. Come posso tracciare i valori NaN come un colore speciale con imshow in matplotlib?
- 24. Impostazione di Matplotlib MPLCONFIGDIR: considerare l'impostazione di MPLCONFIGDIR in una directory scrivibile per i dati di configurazione matplotlib
- 25. punti dati Ridimensionare con Highcharts
- 26. Matplotlib collega i punti dello scatterplot con la linea - Python
- 27. Tracciamento di punti dati a tre tuple in una trama di superficie/contorno usando matplotlib
- 28. Matplotlib, impostazione del testo nel grafico con plt.text() con i dati delle serie temporali dei panda
- 29. TypeError: Invalid dimensioni per dati dell'immagine durante la stampa con matrice imshow()
- 30. Come stampare un'immagine con l'asse y non lineare con Matplotlib usando imshow?
Hai due buone risposte; considera di selezionare uno come corretto. Ho combinato le due risposte per raggiungere il mio obiettivo. Erano entrambi molto più facili di definire una cmap. – physicsmichael