Non esattamente. (Date un'occhiata a the new matplotlib.pyplot.tight_layout()
function per qualcosa di vagamente simile, però ...)
Tuttavia, il solito trucco con le etichette lunghe x-tick è solo per ruotarle.
Per esempio, se abbiamo qualcosa con xticklabels sovrapposti:
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [15 * repr(i) for i in range(10)]
plt.xticks(range(10), labels)
plt.show()
Possiamo ruotare loro per rendere più agevole la lettura:. (La chiave è la rotation=30
La chiamata a plt.tight_layout()
solo regola il margine inferiore della trama in modo che le etichette non vanno fuori dal bordo inferiore.)
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=30)
plt.tight_layout()
plt.show()
Per impostazione predefinita, le etichette di graduazione sono centrate sul segno di spunta. Per le zecche ruotate ha spesso più senso avere il bordo sinistro o destro dell'etichetta che inizia al segno di spunta.
Per esempio, qualcosa di simile (lato destro, rotazione positiva):
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=30, ha='right')
plt.tight_layout()
plt.show()
O questo (lato sinistro, rotazione negativa):
import matplotlib.pyplot as plt
plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=-30, ha='left')
plt.tight_layout()
plt.show()
Joe, cosa succede se non voglio alcun numero E riconquistare lo spazio, in modo che la tela prodotta non ha margini, solo il quadrato (idealmente solo il grafico, nessuna linea)? Sto provando a visualizzarlo in un contenitore gtk, e ne ho bisogno esattamente posizionato. 'a.axis ('off')' rimuove solo i numeri, e 'a.margins (0, tight = True)' sembra inoperante ... Aiuto! – yPhil
@xaccrocheur - 'ax.margins' controlla la modalità di scalabilità automatica dei limiti di dati, non i margini" esterni "del grafico. Se vuoi controllare quanta parte della tela occupata dagli assi, 1) crea manualmente un asse che occupa l'intera figura usando 'ax = fig.add_axes ([0, 0, 1, 1])', oppure 2) usa 'subplots_adjust' per cambiare i margini" esterni "delle tue sottotramme (es.' Fig.subplots_adjust (0, 0, 1, 1) ') –