550 votes

Améliorer l’intrigue secondaire taille/espacement avec plusieurs intrigues secondaires dans matplotlib

Très semblable à cette question , mais à la différence que ma figure peut être aussi grand qu'il doit être.

J'ai besoin de générer tout un tas d'verticalement empilées les parcelles de matplotlib. Le résultat sera enregistré à l'aide de figsave et affichés sur une page web, donc je ne m'inquiète pas quelle est la taille de l'image finale est aussi long que les intrigues secondaires sont espacées de sorte qu'ils ne se chevauchent pas.

Peu importe comment grand que je permettre à la figure, le sous-intrigues semblent toujours se chevauchent.

Mon code ressemble actuellement

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)

731voto

Joe Kington Points 68089

Essayez d’utiliser``

Un exemple rapide :


Sans mise en page serré

enter image description here


Avec une disposition serréeenter image description here

513voto

CyanRook Points 929

Vous pouvez utiliser plt.subplots_adjust pour modifier l’espacement entre les intrigues secondaires lien

92voto

Alexa Halford Points 300

J’ai trouvé que subplots_adjust(hspace = 0.001) est ce qui a fini par travailler pour moi. Lorsque j’utilise l’espace = None, il y a toujours un espace blanc entre chaque parcelle. Cependant la configuration en quelque chose de très proche de zéro semble forcer à la ligne vers le haut. Ce que j’ai téléchargé ici n’est pas le plus élégant morceau de code, mais vous pouvez voir comment fonctionne l’espacement horizontal.

enter image description here

37voto

The Demz Points 1010
<pre><code></code><p>méthode <strong>PLT.subplots_adjust</strong> :</p><pre><code></code></pre><p><strong>ou</strong></p><pre><code></code></pre><p>La taille de l’image compte.</p><p>« J’ai essayé de jouer avec espacement horizontal, mais augmentant, il ne semble faire tous des graphiques plus petits sans résoudre le problème de chevauchement ».</p><p>Ainsi à réaliser davantage d’espace blanc et la taille du tracé sous le total image doit être plus grand.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X