J'ai trouvé l'exemple suivant sur matplotlib:
import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)
plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'ko-')
plt.title('A tale of 2 subplots')
plt.ylabel('Damped oscillation')
plt.subplot(2, 1, 2)
plt.plot(x2, y2, 'r.-')
plt.xlabel('time (s)')
plt.ylabel('Undamped')
plt.show()
Ma question est la suivante: que dois-je changer, pour que les parcelles soient côte à côte?
Modifiez les paramètres de votre sous-parcelle pour:
plt.subplot(1, 2, 1)
...
plt.subplot(1, 2, 2)
Les paramètres de subplot
sont les suivants: nombre de lignes, nombre de colonnes et sous-parcelle sur laquelle vous vous trouvez. Donc, 1, 2, 1
signifie "une figure à 1 ligne, 2 colonnes: allez à la première sous-parcelle." Alors, 1, 2, 2
signifie "une figure à 1 ligne, 2 colonnes: allez à la deuxième sous-parcelle."
Vous demandez actuellement une mise en page à 2 lignes, 1 colonne (une sur l'autre). Vous devez plutôt demander une mise en page à 1 colonne et 2 colonnes. Quand vous le ferez, le résultat sera:
Afin de minimiser le chevauchement des sous-parcelles, vous pouvez lancer un:
plt.tight_layout()
avant le spectacle. Rendement:
Consultez cette page: http://matplotlib.org/examples/pylab_examples/subplots_demo.html
plt.subplots
est similaire. Je pense que c'est mieux puisqu'il est plus facile de définir les paramètres de la figure. Les deux premiers arguments définissent la présentation (dans votre cas, 1 ligne, 2 colonnes), et d'autres paramètres modifient des fonctionnalités telles que la taille de la figure:
import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(5, 3))
axes[0].plot(x1, y1)
axes[1].plot(x2, y2)
fig.tight_layout()