Scala log inversa nei grafici Seaborn
Python è ben dotato di diverse funzioni per gestire i valori logaritmici ed esponenziali. Usiamo le funzioni log()
e exp()
disponibili dai moduli numpy e math per calcolare tali valori.
Per esempio,
print(np.log(50))
print(np.exp(3.912023005428146))
Produzione:
3.912023005428146
49.99999999999999
Molte alterazioni delle due funzioni sopra citate ci permettono di calcolare il log con basi diverse e non solo. I valori esponenziali sono considerati log inversi o valori log inversi.
È possibile trattare tali valori anche su grafici e grafici. Il modulo seaborn, che si basa sul modulo matplotlib, viene utilizzato per scopi di visualizzazione e può creare molti tipi diversi di grafici. Possiamo modificare la cifra finale secondo il nostro requisito utilizzando diverse funzioni.
In questo tutorial, impareremo a invertire i valori di registro sui grafici nati dal mare in Python.
Nel nostro esempio, utilizzeremo le funzioni di registro per calcolare i valori richiesti e tracciarli utilizzando la funzione violinplot()
del modulo seaborn.
Vedi il codice qui sotto,
import seaborn as sns
import numpy as np
lst = [1, 5, 8, 9, 5, 2, 5, 6, 9]
pl = sns.violinplot(y=np.log(lst))
Possiamo personalizzare i valori di tick dell’etichetta su entrambi gli assi utilizzando la funzione set_yticklabels()
e set_xticklabels()
. Useremo la funzione di log inverso con le funzioni sopra per impostare i valori dell’etichetta tick.
Per esempio,
import seaborn as sns
import numpy as np
lst = [1, 5, 8, 9, 5, 2, 5, 6, 9]
pl = sns.violinplot(y=np.log(lst))
pl.set_yticklabels([f"{np.expm1(l):.2f}" for l in pl.get_yticks()])
La funzione get_yticks()
restituisce le etichette predefinite e calcoliamo il loro log inverso utilizzando la funzione exp()
. Formattiamo il risultato finale solo con due cifre decimali usando fstrings usato per la formattazione delle stringhe in Python.
In questo modo, abbiamo creato un diagramma del violino calcolando i valori di registro degli elementi di un elenco e citando i valori originali sulle etichette dei segni di spunta utilizzando la funzione di registro inverso.
Nota che abbiamo usato le funzioni del modulo numpy e non il modulo math nei nostri esempi. È perché le funzioni numpy log()
e exp()
possono calcolare direttamente i valori richiesti di una lista o anche di un array.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn