2013-04-10 6 views
8

Ich versuche, ein Histogramm mit Balkendiagramm zu zeichnen, und ich habe Schwierigkeiten herauszufinden, wie die X-Achsenbeschriftungen mit den tatsächlichen Bins ausgerichtet werden. Der folgende Code erzeugt das folgende Diagramm: Bar chartmatplotlib: Histogramm- und Bin-Beschriftungen

Wie Sie sehen können, ist das Ende jedes x-labels nicht auf die Mitte seines Fachs ausgerichtet. Die Art, wie ich darüber nachdenke, ist: Wenn ich eine 45-Grad-Drehung anwende, dreht sich das Etikett um sein geometrisches Zentrum. Ich habe mich gefragt, ob es möglich ist, den Drehpunkt an die Spitze des Etiketts zu bewegen. (Oder einfach übersetzen alle Etiketten leicht nach links.)

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() 

Antwort

9

Verwendung:

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

Die Ausgabe lautet:

enter image description here

+0

brillant, danke! – dimka