2013-04-03 318 views
4

我注意到,當我有數據的5層或更少的酒吧在我的柱狀圖x軸的額外蜱自動添加: enter image description here 我想是這樣的:操縱X軸刻度標籤

enter image description here

有沒有什麼辦法可以強制matplotlib產生每欄只有一個刻度標記第一個圖形?

+0

它也看起來你已經發現了錯誤的Unicode在matplotlib在OSX [問題1737](https://github.com/matplotlib/matplotlib/issues/1737)和http://stackoverflow.com/questions/15524662/matplotlib-mac-osx-10-8-cuts-off-tick-and-axes-labels – tacaswell

+4

它也_very_有用的,如果你告訴我們,你用來產生這些代碼兩張圖。我們可以_guess_你是怎麼做的,什麼地方出了錯,但你會得到更多,更快,更好的答案,如果我們能_see_你在做什麼,然後直接解決這個問題。 – tacaswell

回答

16

bar方法需要一個參數align。將此參數設置爲align='center'align將我們給出的x值中心的條對齊,而不是在條左側對齊(這是默認值)。

然後使用xticks方法指定多少在x軸和在哪裏放置它們蜱。

import matplotlib.pyplot as plot 

x = range(1, 7) 
y = (0, 300, 300, 290, 320, 315) 
plot.bar(x, y, width=0.7, align="center") 

ind = range(2, 7) # the x locations for the groups 
plot.xticks(ind, x) 

plot.axhline(305, linewidth=3, color='r') 

plot.show() 

文檔是在http://matplotlib.org/api/pyplot_api.html