Ce que j'essaie de faire, c'est d'afficher 3 images (colonnes) comme sous-tracés dans chaque ligne, les images s'affichent mais se chevauchent. J'ai essayé de les ajuster manuellement, mais le nombre de lignes dans mes sous-parcelles dépend d'une valeur "n", il n'est donc pas possible d'ajuster manuellement pour chaque n. J'ai essayé "fig.tight_layout ()" mais en vain.

Des idées sur la façon de surmonter cela ??

    coeffs=coeffs[1:][::-1]

for i,v in enumerate(coeffs,1):
    toWork=[v[0], v[1], v[2]]
    for j,a in enumerate(toWork):
        ax = fig.add_subplot(i, 3, j+1)
        ax.imshow(a, interpolation="nearest", cmap=plt.cm.gray)
        ax.set_title(titles[j]+str(i), fontsize=10)
        ax.set_xticks([])
        ax.set_yticks([])
        # fig.tight_layout()
# plt.subplots_adjust(top=1,bottom=0,left=0.10,right=0.95,hspace=0.1,wspace=100)
plt.subplot_tool()
plt.show()
1
TheNamesAlc 17 mars 2019 à 18:42

2 réponses

Meilleure réponse

Ce n'est pas tout à fait clair d'après votre description. Veuillez fournir un un exemple minimum vérifiable. Cependant, à en juger par votre code, vous créez un nombre différent de lignes avec la variable i, ce qui, je pense, n'est pas prévu. À partir de la docs, nous pouvons voir comment fonctionnent les sous-parcelles

enter image description here

import matplotlib.pyplot as plt
fig = plt.figure()
nrows, ncols = 3, 3 # total of 9 plots
for idx in range(9):
    ax = fig.add_subplot(nrows, ncols, idx + 1)
    ax.text(0.5, 0.5, idx)
fig.show()

Nous prédéfinissons donc le nombre de colonnes et de lignes, puis nous indexons dans le sous-parcelle correct que nous voulons utiliser. Je pense que ce que vous faites est de redéfinir des sous-parcelles sur la même figure, provoquant le chevauchement.

0
cvanelteren 17 mars 2019 à 17:06

Vous pouvez essayer plt.tight_layout () Cela aplatira votre silhouette et rendra les figures soignées.

0
Jaden 3 avril 2019 à 00:46