Maison >développement back-end >Tutoriel Python >Comment puis-je empêcher les sous-parcelles qui se chevauchent dans Matplotlib lors de la création de plusieurs tracés empilés verticalement ?
Chevauchement de sous-parcelles dans Matplotlib avec de nombreux tracés
Lors de la génération d'une série de tracés empilés verticalement dans Matplotlib pour les afficher sur une page Web, il est crucial de garantir un espacement approprié entre les sous-parcelles pour éviter les chevauchements. Malgré l'augmentation de la taille de la figure, les sous-intrigues se chevauchent souvent.
Implémentation actuelle
Le code suivant illustre l'implémentation actuelle :
import matplotlib.pyplot as plt import my_other_module titles, x_lists, y_lists = my_other_module.get_data() fig = plt.figure(figsize=(10,60)) for i, y_list in enumerate(y_lists): plt.subplot(len(titles), 1, i) plt.xlabel("Some X label") plt.ylabel("Some Y label") plt.title(titles[i]) plt.plot(x_lists[i],y_list) fig.savefig('out.png', dpi=100)
Solution : mise en page serrée
Pour résoudre ce problème, envisagez d'utiliser matplotlib.pyplot.tight_layout ou matplotlib.figure.Figure.tight_layout. Ces fonctions ajustent les sous-traces et l'espacement de telle sorte qu'ils ne se chevauchent pas.
Exemple
import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(8, 8)) fig.tight_layout() # Or equivalently, "plt.tight_layout()" plt.show()
Comparaison visuelle
Les images suivantes démontrent l'impact de l'utilisation de Tight_layout :
Sans serré_layout
Avec serré_layout
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!