Ho una barra di colore con valori positivi e negativi che vengono generati automaticamente (non li sto impostando). Sfortunatamente il segno meno rompe l'allineamento verticale del testo. Come posso allineare tutto il testo nei ticklabels a destra o in alternativa inserire uno spazio prima dei miei numeri positivi per farlo sembrare bello?Allinea ticklabels in colorbar matplotlib
risposta
Stavo per fare la stessa domanda, poi finalmente trovato la vostra. Quindi mi piacerebbe aggiungere il mio work-around.
All'inizio ho utilizzato la stessa identica soluzione given by Rutger Kassies. Tuttavia, quando si esegue il plottaggio in ipython
, la stessa quantità di spostamento nella posizione x
darà risultati molto diversi quando si visualizza una piccola finestra o si imposta la figura a schermo intero.
Alla fine ho deciso di impostare lo pad
delle etichette di graduazione della barra di colore.
Prestito
Palesemente rubare il codice di esempio di Rutger:
a = np.random.randn(10,10)
fig, ax = plt.subplots()
im = ax.imshow(a, interpolation='none')
cb = plt.colorbar(im)
ticklabs = cb.ax.get_yticklabels()
cb.ax.set_yticklabels(ticklabs,ha='right')
cb.ax.yaxis.set_tick_params(pad=45) # your number may vary
Questa soluzione sembra dare un risultato molto più consistente quando si utilizza in vari formati e aspetti della finestra.
Ecco 4 uscite per dimostrare cosa intendo: la riga superiore è la soluzione di cambio di posizione, la riga inferiore è la soluzione di riempimento. Sulla sinistra sono le dimensioni delle finestre figura di default, il lato destro è stato savefig
GED dopo schioccare la finestra cifra a schermo intero:
È possibile modificare l'allineamento del testo. Potrebbe essere necessario modificare leggermente la posizione (x) dell'etichetta per evitare sovrapposizioni con la barra colorata stessa.
a = np.random.randn(10,10)
fig, ax = plt.subplots()
im = ax.imshow(a, interpolation='none')
cb = plt.colorbar(im)
for t in cb.ax.get_yticklabels():
t.set_horizontalalignment('right')
t.set_x(3.5)
Volevo solo farti sapere che ho trovato una soluzione leggermente diversa che è un po 'più robusta per cambiare le dimensioni delle finestre. Sto principalmente lasciando questo commento per chiederti di farmi sapere se hai trovato soluzioni alternative ancora migliori negli ultimi 2 anni. –
- 1. Notazione scientifica colorbar in matplotlib
- 2. Standarone colorbar (matplotlib)
- 3. Set Colorbar Gamma in matplotlib
- 4. Come aggiungere Matplotlib Colorbar Ticks
- 5. Campo di regolazione matplotlib colorbar
- 6. Matplotlib colorbar background e label placement
- 7. Come si regola (offset) titolo colorbar in matplotlib
- 8. Come ignorare NaN in colorbar?
- 9. Colorbar on Geopandas
- 10. Come posso aggiungere spazio tra i ticklabels e gli assi in matplotlib?
- 11. Legenda intensità spettrogramma Matlotlib (colorbar)
- 12. Colorbar dalla consuetudine colorRampPalette
- 13. Personalizza asse x in matplotlib
- 14. Allinea l'output printf in Java
- 15. \ text non funziona in un'etichetta matplotlib
- 16. Come si usa colorbar con hist2d in matplotlib.pyplot?
- 17. Allinea stringhe in colonne in JTextArea
- 18. istruzioni "allinea" su MIPS
- 19. immagini Allinea Jcrop
- 20. layout Android Destra Allinea
- 21. ipython/Jupyter Allinea Widget
- 22. Allinea immagini orizzontalmente CSS
- 23. Allinea più tabelle affiancate
- 24. Allinea verticalmente div flottanti
- 25. Allinea il contenuto del div in basso
- 26. Allinea div right in Bootstrap 3
- 27. Allinea i valori delle celle in JTable?
- 28. Verticale Allinea il testo in un'etichetta
- 29. Allinea il testo lasciato in libgdx TextButton
- 30. Allinea verticalmente il testo in una UILabel
io non so come mi è mancata questa domanda finora, I' ho accuratamente cercato qualcosa di simile più volte. Apparentemente una cosa così semplice e naturale che vogliamo fare ... Questo ha bisogno di più upvotes;) –