Ho la generazione di grafici a barre che assomigliano a questo:Barh matplotlib produce la spaziatura tra le barre traballante
Si noti che la spaziatura verticale sulle etichette non è uniforme per qualche ragione; Non sono sicuro che questo abbia a che fare con il modo in cui ho assegnato i tick o qualunque meccanismo stia effettivamente posizionando il testo. codice rilevante:
height_factor = 40.0
ind = np.linspace(0,len(sorted_totals)*height_factor,num=len(sorted_totals))
width = 0.25
fig = plt.figure(figsize=(15.5, 8.75),dpi=300)
p1 = plt.barh(ind,map(int,sorted_composite[:,0]),color='blue',align='center',height=height_factor)
p1 = plt.barh(ind,map(int,sorted_composite[:,2]),color=(0.75,0.1,0.1),align='center',height=height_factor)
plt.ylabel('# of Picks (blue) + # of Bans (red)')
plt.yticks(ind, sorted_totals[:,0])
plt.subplots_adjust(bottom=0.05, left=0.14,right=0.95,top=0.95)
plt.ylim([ind.min() - height_factor, ind.max() + height_factor])
mio dati sono memorizzati in sorted_composite e ind sono i valori che sto usando per posizionare le barre (Le posizioni Ytick). Sto usando linspace per produrre barre distanziate uniformemente e questo è solo un tipo di lavoro e non sono sicuro del perché.
Stavo pensando che il problema può essere correlato ad avere tutti quei bar piuttosto stipati, ma ho cercato il codice da Da 5 a ~ 50 bar e nessun problema qui. –
Sì, ho la sensazione che sia un problema di arrotondamento del posizionamento dei pixel ..cioè se hai un'immagine alta 8 pixel e vuoi disegnare una linea attraverso il centro la disegna lungo la riga di pixel 4 o la riga di pixel 5; in entrambi i casi sembra male – user1127062
Su un lato nota ottengo risultati male anche con un banco di prova banale: 'da NumPy import *' da pylab import * Dati = zeri (50) 10 ind = arange (10) barh (ind, data) show() ' Sembra piuttosto male – user1127062