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 ?

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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-06 03:26:12648parcourir

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

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

Avec serré_layout

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn