Desidero creare 4 sottotrotme imshow
ma tutte condividono la stessa mappa colori. Matplotlib regola automaticamente la scala sulla mappa colori in base alle voci delle matrici. Ad esempio, se una delle mie matrici ha tutte le entrate come 10 e l'altra ha tutte le voci uguali a 5 e io uso la colormap Greys
, una delle mie sottotrame dovrebbe essere completamente nera e l'altra dovrebbe essere completamente grigia. Ma entrambi finiscono per diventare completamente neri. Come rendere tutte le sottotrame condividono la stessa scala sulla mappa dei colori?Imagine sottotrame con la stessa barra dei colori
risposta
Per ottenere questo diritto è necessario disporre di tutte le immagini con la stessa intensità, altrimenti i colori colorbar()
non hanno senso. Per fare ciò, utilizzare gli argomenti vmin
e vmax
di imshow()
e accertarsi che siano uguali per tutte le immagini.
Ad esempio, se l'intervallo di valori che si desidera mostrare va da 0 a 10, è possibile utilizzare il seguente:
import pylab as plt
import numpy as np
my_image1 = np.linspace(0, 10, 10000).reshape(100,100)
my_image2 = np.sqrt(my_image1.T) + 3
subplot(1, 2, 1)
plt.imshow(my_image1, vmin=0, vmax=10, cmap='jet', aspect='auto')
plt.subplot(1, 2, 2)
plt.imshow(my_image2, vmin=0, vmax=10, cmap='jet', aspect='auto')
plt.colorbar()
non molto bello dato che il secondo asse è più stretto, vedi http://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbar invece –
@RuggeroTurra True, ma questo è dovuto all'aspetto = 'auto'' e in ogni caso può essere regolato cambiando gli spazi sottotrama (o ad es. gridspec). Nella risposta accettata che colleghi la barra dei colori non è alta come gli assi, quindi sono necessarie alcune regolazioni. – tiago
Può essere che non si conosce in anticipo il intervalli di dati, ma potresti sapere che in qualche modo sono compatibili. In tal caso, potresti preferire che matplotlib scelga tali intervalli per il primo grafico e utilizzi lo stesso intervallo per i restanti grafici. Ecco come puoi farlo. La chiave è quello di ottenere i limiti con properties()['clim']
import numpy as np
import matplotlib.pyplot as plt
my_image1 = np.linspace(0, 10, 10000).reshape(100,100)
my_image2 = np.sqrt(my_image1.T) + 3
fig, axes = plt.subplots(nrows=1, ncols=2)
im = axes[0].imshow(my_image1)
clim=im.properties()['clim']
axes[1].imshow(my_image2, clim=clim)
fig.colorbar(im, ax=axes.ravel().tolist(), shrink=0.5)
plt.show()
Non funzionerà se l'intervallo di valori nel primo grafico è inferiore all'intervallo nel secondo grafico. – naught101
concordato. Ma questo è quello che ho spiegato nel testo. Ciò funzionerà se non si conoscono gli intervalli migliori ma si presume che gli intervalli automatici per il primo grafico corrispondano a quelli rimanenti. –
- 1. Posizionamento errato della barra dei colori quando si utilizzano sottotrame (matplotlib)
- 2. Più file secondari imshow, ciascuno con barra dei colori
- 3. Seaborn Heatmap con barra dei colori a scala logaritmica
- 4. perché la mia barra dei colori contiene delle linee?
- 5. Netbeans - Come nascondere la barra verticale con i colori?
- 6. Simulare la trasparenza dei colori
- 7. Modifica dei colori con CGContextStrokePath
- 8. Imagine Matlock: dati ruotati?
- 9. Class 'Imagine \ Gd \ Imagine' non trovato in yii2
- 10. Personalizzazione dei colori della barra delle schede di Vim
- 11. come impostare manualmente l'intervallo nella barra dei colori?
- 12. matplotlib - sottotrame con proporzioni fisse
- 13. Materiale angolare - imposta la tavolozza dei colori
- 14. Impostazione dei colori di un testo JProgressBar
- 15. Impostare due grafici implog matplotlib per avere la stessa scala della scala dei colori
- 16. Miglior algoritmo per la corrispondenza dei colori.
- 17. Strumento per la pulizia dei colori CSS
- 18. Come ridurre la tavolozza dei colori con PIL
- 19. regolazione altezze dei singoli sottotrame in matplotlib in Python
- 20. Programmazione dei colori con programmazione scale_fill_manual ggplot
- 21. cambiando dimensione figura con sottotrame
- 22. La creazione di sottotrame con forme diverse in matplotlib
- 23. Ottieni il valore del colore della posizione specifica nella barra dei colori con sfumatura
- 24. Come spostare la posizione della barra dei colori a destra in matplotlib?
- 25. Rimozione dei colori dall'output
- 26. Tracciare la linea tra due sottotrame
- 27. Creazione di una barra dei colori per una trama fatta con plt.fill
- 28. aggiunta dei valori di due mappe con la stessa chiave
- 29. Aggiunta della barra colori a uno spettrogramma
- 30. Qual è la matematica dietro la ruota dei colori
Sembra che questo post ha una risposta che potrebbe aiutare. http://stackoverflow.com/questions/3373256/set-colorbar-range-in-matplotlib – bserra
possibile duplicato di [Sottotrammi Matplotlib 2, 1 Colorbar] (http://stackoverflow.com/questions/13784201/matplotlib-2- subplots-1-colorbar) –