2013-04-10 14 views
8

Sto provando a tracciare un istogramma con grafico a barre e ho difficoltà a capire come allineare le etichette dell'asse x con i raccoglitori effettivi. Il codice seguente genera il seguente grafico: Bar chartmatplotlib: etichette istogramma e bin

come si può vedere, la fine di ogni etichetta x non è allineata al centro del suo contenitore. Il modo in cui sto pensando a questo è: quando applico una rotazione di 45 gradi, l'etichetta ruota intorno al suo centro geometrico. Mi stavo chiedendo se è possibile spostare il perno fino alla cima dell'etichetta. (O semplicemente traducono tutte le etichette leggermente a sinistra.)

import matplotlib.pyplot as plt 
import numpy as np 

#data 
np.random.seed(42) 
data = np.random.rand(5) 
names = ['A:GBC_1233','C:WERT_423','A:LYD_342','B:SFS_23','D:KDE_2342'] 

ax = plt.subplot(111) 
width=0.3 
bins = map(lambda x: x-width/2,range(1,len(data)+1)) 
ax.bar(bins,data,width=width) 
ax.set_xticks(map(lambda x: x, range(1,len(data)+1))) 
ax.set_xticklabels(names,rotation=45) 

plt.show() 

risposta

9

Usa:

ax.set_xticklabels(names,rotation=45, rotation_mode="anchor", ha="right") 

L'output è:

enter image description here

+0

brillante, grazie! – dimka