Ho aumentato il font dei miei ticklabels con successo, ma ora sono troppo vicini all'asse. Mi piacerebbe aggiungere un po 'di respiro tra i ticklabel e l'asse.Come posso aggiungere spazio tra i ticklabels e gli assi in matplotlib?
risposta
Sembra matplotlib rispetta queste impostazioni come rcParams:
pylab.rcParams['xtick.major.pad']='8'
pylab.rcParams['ytick.major.pad']='8'
Seleziona i prima di creare qualsiasi figure e si dovrebbe andare bene.
Ho guardato il codice sorgente e non sembra esserci alcun altro modo per impostarli a livello di codice. (tick.set_pad() sembra che cerchi di fare la cosa giusta, ma il padding sembra essere impostato quando le zecche sono costruite e non può essere cambiato dopo.)
Questo può essere fatto usando set_pad
ma tu quindi necessario ripristinare l'etichetta ...
for tick in ax.get_xaxis().get_major_ticks():
tick.set_pad(8.)
tick.label1 = tick._get_text1()
Se non si desidera modificare la spaziatura a livello globale (per la modifica rcParams), e vogliono un approccio più pulito, provate questo:
ax.tick_params(axis='both', which='major', pad=15)
o solo per asse x
ax.tick_params(axis='x', which='major', pad=15)
Questo è molto più semplice dell'iterazione tramite tick per un singolo grafico. Grazie! Per un singolo asse puoi anche usare: 'ax.xaxis.set_tick_params (pad = n)' – jonchar
Molto difficile per un lettore inesperto capire cosa sia l'ascia. Se lo ottengo con ax = plt.gca(), il comando sposta solo le etichette. –
Vorrei suggerire che il brutto qui è alquanto irrilevante e che questa è ancora una buona soluzione. Ci sono molte occasioni in cui non stai facendo una trama sulla stessa figura. Ciò significa che rcParams non è una soluzione perché vuoi evitare le impostazioni globali. – MikeGM
@MikeGM: In retrospettiva, sono d'accordo con te per i motivi che hai menzionato. Prenderò la mia descrizione di questo come brutto, anche se il reset delle etichette non è esattamente elegante. Grazie per il tuo commento – tom10