Je veux tracer 5 trames de données dans un paramètre 2 par 3 (c'est-à-dire 2 lignes et 3 colonnes). Voici mon code: Cependant, il y a un tracé supplémentaire vide en 6ème position (deuxième ligne et troisième colonne) dont je veux me débarrasser. Je me demande comment je pourrais l'enlever pour avoir trois parcelles dans la première rangée et deux parcelles dans la deuxième rangée.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, ncols=3)
fig.set_figheight(8)
fig.set_figwidth(15)
df[2].plot(kind='bar',ax=axes[0,0]); axes[0,0].set_title('2')
df[4].plot(kind='bar',ax=axes[0,1]); axes[0,1].set_title('4')
df[6].plot(kind='bar',ax=axes[0,2]); axes[0,2].set_title('6')
df[8].plot(kind='bar',ax=axes[1,0]); axes[1,0].set_title('8')
df[10].plot(kind='bar',ax=axes[1,1]); axes[1,1].set_title('10')
plt.setp(axes, xticks=np.arange(len(observations)), xticklabels=map(str,observations),
yticks=[0,1])
fig.tight_layout()
Essaye ça:
fig.delaxes(axes[1][2])
Une méthode beaucoup plus flexible pour créer des sous-tracés est la méthode fig.add_axes()
. Les paramètres sont une liste de coordonnées rect: fig.add_axes ([x, y, xsize, ysize]). Les valeurs sont relatives à la taille du canevas, donc une taille x de 0,5 signifie que le sous-tracé a la moitié de la largeur de la fenêtre.
Alternativement, en utilisant la méthode axes
set_axis_off()
:
axes[1,2].set_axis_off()
Si vous savez quel tracé supprimer, vous pouvez donner l'index et supprimer comme ceci:
axes.flat[-1].set_visible(False) # to remove last plot