2012-11-27 216 views
14

我想隱藏我的條形圖的第一個和最後一個x軸刻度文本,即'2004'和'2013'。即使我的數據集是2005年到2012年,Matplotlib默認會自動添加這些數據,因此我寧願不要在我的條形圖中使用2004年和2013年。我正在尋找一些代碼行來選擇和隱藏這些刻度。有任何想法嗎?Matplotlib - 在x軸上隱藏特定的刻度

+2

你可以添加一些代碼的? – enginefree

+2

您可以手動指定刻度標籤和位置以獲得更好的控制:請參閱matplotlib文檔中的示例代碼。 http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xticks – abought

回答

23

請告訴我,如果它不是你想要的。

import sys, os 
import matplotlib.pyplot as plt 

path = sys.path[0] 
sizes = [(12,3,), (4,3,)] 
x = range(20) 


for i, size in enumerate(sizes): 
    fig = plt.figure(figsize = size, dpi = 80, facecolor='white',edgecolor=None,linewidth=0.0, frameon=True, subplotpars=None) 
    ax = fig.add_subplot(111) 
    ax.plot(x) 
    plt.ylabel ('Some label') 
    plt.tight_layout() 

    make_invisible = True 
    if (make_invisible): 
     xticks = ax.xaxis.get_major_ticks() 
     xticks[0].label1.set_visible(False) 
     xticks[-1].label1.set_visible(False) 

plt.show() 

這個例子使不可見的第一個和最後一個X-ticks。但是你可以很容易地添加檢查你的特殊蜱。

3

只是增加@ DmitryNazarov的答案,在你只想隱藏刻度標記的情況下,保持網格線可見,使用:

ax = plt.gca()  
ax.axes.xaxis.set_ticklabels([]) 
ax.axes.yaxis.set_ticklabels([])