Come regolare l’imbottitura con etichette tagliate o sovrapposte

| | |

MRE aggiornato con sottotrame

  • Non sono sicuro dell'utilità della domanda originale e dell'MRE. Il riempimento del margine sembra essere regolato correttamente per etichette xey grandi.
  • Il problema è riproducibile con le sottotrame.
  • Utilizzando matplotlib 3.4.2
fig, assi = plt.subplots(ncols=2, nrows=2, figsize=(8, 6)) assi = assi.flatten() for ax in assi: ax.set_ylabel(r"$lnleft(frac {x_a-x_b}{x_a-x_c} ight)$") ax.set_xlabel(r"$lnleft(frac{x_a-x_d}{x_a-x_e} ight)$") plt.show() 

inserisci qui la descrizione dell'immagine

Originale

Sto tracciando un set di dati usando matplotlib dove ho avere una xlabel abbastanza "alta" (è "una formula resa in TeX che contiene una frazione e quindi ha l'altezza equivalente a un paio di righe di testo).

In ogni caso, la parte inferiore della formula viene sempre tagliata quando disegno le figure. Cambiare la dimensione della figura non sembra aiutare questo, e non sono stato in grado di capire come spostare l'asse x "su" per fare spazio alla xlabel. Qualcosa del genere sarebbe una ragionevole soluzione temporanea, ma sarebbe bello avere un modo per fare in modo che matplotlib riconosca automaticamente che l'etichetta è stata tagliata e si ridimensioni di conseguenza.

Ecco un esempio di cosa Voglio dire:

import matplotlib.pyplot as plt plt.figure() plt.ylabel(r"$lnleft(frac{x_a-x_b}{x_a-x_c} ight)$") plt .xlabel(r"$lnleft(frac{x_a-x_d}{x_a-x_e} ight)$", fontsize=50) plt.title("Esempio con matplotlib 3.4.2 MRE non è più un problema") plt.show( ) 

inserisci qui la descrizione dell'immagine

L'intera ylabel è visibile, tuttavia, la xlabel è tagliata in basso.

Nel caso si tratti di un problema specifico della macchina, lo sto eseguendo su OSX 10.6.8 con matplotlib 1.0.0