Ho una trama esistente che è stata creata con i panda in questo modo:
df['myvar'].plot(kind='bar')
L'asse y è formato come float e voglio cambiare l'asse y in percentuali. Tutte le soluzioni che ho trovato utilizzano la sintassi ax.xyz e posso solo posizionare il codice sotto la riga sopra che crea la trama (non posso aggiungere ax = ax alla riga sopra).
Come posso formattare l'asse y come percentuali senza modificare la linea sopra?
Ecco la soluzione che ho trovato ma richiede di ridefinire la trama :
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as mtick
data = [8,12,15,17,18,18.5]
perc = np.linspace(0,100,len(data))
fig = plt.figure(1, (7,4))
ax = fig.add_subplot(1,1,1)
ax.plot(perc, data)
fmt = '%.0f%%' # Format you want the ticks, e.g. '40%'
xticks = mtick.FormatStrFormatter(fmt)
ax.xaxis.set_major_formatter(xticks)
plt.show()
Collegamento alla soluzione precedente: Pyplot: utilizzando la percentuale sull'asse x