Mise à jour de l'ERM avec les intrigues secondaires
- Je ne suis pas sûr de l'utilité de la question initiale et de l'ERM. La marge de remplissage semble être correctement ajustée pour les grandes étiquettes x et y.
- Le problème peut être reproduit avec les sous-parcelles.
-
L'utilisation
matplotlib 3.4.2
fig, axes = plt.subplots(ncols=2, nrows=2, figsize=(8, 6)) axes = axes.flatten()
for ax in axes: ax.set_ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$') ax.set_xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()
Original
Je trace un jeu de données en utilisant matplotlib
où j'ai un xlabel qui est assez "haut" (c'est une formule rendue en TeX qui contient une fraction et qui a donc une hauteur équivalente à quelques lignes de texte).
En tout état de cause, le bas de la formule est toujours coupé lorsque je dessine les chiffres. Changer la taille de la figure ne semble pas arranger les choses, et je n'ai pas réussi à trouver comment décaler l'axe des x "vers le haut" pour faire de la place à l'étiquette des x. Quelque chose comme ça serait une solution temporaire raisonnable, mais ce qui serait bien, ce serait d'avoir un moyen de faire en sorte que matplotlib reconnaisse automatiquement que l'étiquette est coupée et redimensionne en conséquence.
Voici un exemple de ce que je veux dire :
import matplotlib.pyplot as plt
plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$', fontsize=50)
plt.title('Example with matplotlib 3.4.2\nMRE no longer an issue')
plt.show()
L'ensemble de l'étiquette y est visible, mais l'étiquette x est coupée en bas.
Au cas où il s'agirait d'un problème spécifique à la machine, j'utilise OSX 10.6.8 avec matplotlib 1.0.0.
5 votes
Vous pouvez le poster sur un site d'hébergement d'images et le lier ici.
1 votes
Il serait utile que vous puissiez poster un exemple de code minimaliste qui déclenche ce problème. De cette façon, les gens peuvent comprendre et reproduire votre problème plus rapidement, et ils seront plus enclins à vous aider.
0 votes
Votre code fonctionne parfaitement (affichage de la formule entièrement visible) sur ma machine (ubuntu 11.04 64bit). Il s'agit peut-être d'un problème spécifique à la machine [comme une police avec des informations dimensionnelles erronées utilisées dans l'image ?] Vous pourriez peut-être préciser le système que vous utilisez dans votre question.
27 votes
Vous pouvez également essayer
plt.savefig("test.png",bbox_inches='tight')
: stackoverflow.com/questions/21288062/