Mis a jour le 2024-10-20, 20:14

Disposition et graphes multiples

Il y a 2 notions :
Taille d'une figure :
Fixation des marges :
Traçage de graphes multiples sur la même figure :
subplots :
Exemple de figure avec des graphes multiples : pyplot.figure(1) pyplot.subplot(1, 2, 1) pyplot.scatter(range(5), [x ** 2 for x in range(5)], color = 'blue') pyplot.subplot(2, 2, 2) pyplot.plot(range(5), color = 'red') pyplot.subplot(2, 2, 4) pyplot.bar(range(5), range(5), color = 'green')
On peut aussi positionner un graphe "en insert" où l'on veut en donnant la position x et y du point en bas à gauche de ce graphe, avec des valeurs entre 0 et 1, et les dimensions largeur et hauteur, entre 0 et 1, et en utilisant la méthode add_axes de Figure : figure = pyplot.figure() axes = figure.add_subplot(111) # Renvoie un objet AxesSubplot, sous classe de Axes axes.scatter(range(5), [x ** 2 for x in range(5)]) axes.set_xlim(0, 4) axes.set_xlabel('axe des x') axes2 = figure.add_axes([0.3, 0.5, 0.3, 0.3]) # renvoie un objet Axes axes2.patch.set_color('lightyellow') axes2.plot(range(5), range(5))
Réglage des marges (aussi bien si un seul graphe que si plusieurs graphes) :
Exemple avec des petites marges : figure = pyplot.figure(figsize = (10, 10)) pyplot.gcf().subplots_adjust(left = 0.1, bottom = 0.1, right = 0.9, top = 0.9, wspace = 0, hspace = 0.1) axes = figure.add_subplot(2, 1, 1) axes.set_xlabel('axe des x') axes.set_ylabel('axe des y') axes.set_title('titre du graphe 1') axes.scatter(range(5), [x ** 2 for x in range(5)], s = 50, color = 'blue') axes = figure.add_subplot(2, 1, 2) axes.set_xlabel('axe des x') axes.set_ylabel('axe des y') axes.set_title('titre du graphe 2') axes.scatter(range(5), [x ** 2 for x in range(5)], s = 50, color = 'red')
Exemple avec des grandes marges : figure = pyplot.figure(figsize = (10, 10)) pyplot.gcf().subplots_adjust(left = 0.3, bottom = 0.3, right = 0.7, top = 0.7, wspace = 0, hspace = 2) axes = figure.add_subplot(2, 1, 1) axes.set_xlabel('axe des x') axes.set_ylabel('axe des y') axes.set_title('titre du graphe 1') axes.scatter(range(5), [x ** 2 for x in range(5)], s = 50, color = 'blue') axes = figure.add_subplot(2, 1, 2) axes.set_xlabel('axe des x') axes.set_ylabel('axe des y') axes.set_title('titre du graphe 2') axes.scatter(range(5), [x ** 2 for x in range(5)], s = 50, color = 'red')
Pour avoir la position d'un graphe dans une figure : pyplot.gca().get_position().get_points() : renvoie une array du type [[x0,y0],[x1,y1]] avec (x0, y0) coordonnées du point en bas à gauche et (x1, y1) coordonnées du point en haut à droite.
Pour créer des subplots a priori et ensuite les remplir avec des figures :

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert