2013-04-10 20 views
8

Çubuk grafikli bir histogram çizmeye çalışıyorum ve x-axis etiketlerini gerçek kutularla nasıl hizalayacağınızı bulmakta güçlük çekiyorum. Aşağıdaki kod, aşağıdaki görüldüğü gibi oluşturur: görebildiğiniz gibi, her x-etiketinin sonu, kutusunun ortasına hizalanmamıştır. Bunu düşündüğüm yol: 45 derecelik bir rotasyon uygularken, etiket geometrik merkezinin etrafında dönüyor. Pivotu etiketin en üstüne taşımak mümkün olup olmadığını merak ediyordum. (Ya da sadece tüm etiketler hafif sola çevirmek.)matplotlib: çubuk ve etiket etiketleri

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

cevap

9

Kullanım:

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

çıktısı:

enter image description here

+0

parlak, teşekkür ederim! – dimka