2012-11-27 14 views
14

Sto tentando di nascondere il primo e l'ultimo testo di spunta dell'asse x del mio grafico a barre, che è "2004" e "2013". Matplotlib aggiunge automaticamente questi in per impostazione predefinita, anche se il mio set di dati è per il 2005 al 2012, quindi preferirei non avere il 2004 e il 2013 nella mia trama bar. Sto cercando alcune linee di codice per selezionare e nascondere questi tick. Qualche idea?Matplotlib - occultamento di tick specifici sull'asse x

+2

Potrebbe aggiungere un po 'del vostro codice? – enginefree

+2

È possibile specificare manualmente le etichette e le posizioni delle tacche per un maggiore controllo: vedere il codice di esempio nei documenti matplotlib. http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xticks – abought

risposta

23

Per favore, dimmi se non è quello che vuoi.

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

Questo esempio rende invisibili il primo e l'ultimo segno di spunta. Ma puoi facilmente aggiungere un controllo per le tue zecche speciali.

3

Basta aggiungere a @ risposta di DmitryNazarov, nel caso in cui si desidera solo per nascondere le etichette delle tacche, mantenendo le linee della griglia visibile, uso:

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