[Python] Comment dessiner plusieurs graphiques avec Matplotlib

Affichez deux graphiques à gauche et à droite.


import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)

fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4))

axL.plot(t, x1, linewidth=2)
axL.set_title('sin')
axL.set_xlabel('t')
axL.set_ylabel('x')
axL.set_xlim(-np.pi, np.pi)
axL.grid(True)

axR.plot(t, x2, linewidth=2)
axR.set_title('cos')
axR.set_xlabel('t')
axR.set_ylabel('x')
axR.set_xlim(-np.pi, np.pi)
axR.grid(True)

fig.show()

multiplot_01.png

Partage de l'axe

Lors de l'affichage de plusieurs graphiques, Partager peut être utilisé lorsqu'il est difficile de définir les paramètres de l'axe X pour tous les graphiques. Définissez simplement sharex = True comme argument pour les sous-graphiques. Ai

partage disponible

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi*2, np.pi*2, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)

fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4), sharex=True)

axL.plot(t, x1, linewidth=2)
axL.set_title('sin')
axL.set_xlabel('t')
axL.set_ylabel('x')
axL.set_xlim(-np.pi, np.pi)
axL.grid(True)

axR.plot(t, x2, linewidth=2)
axR.set_title('cos')
axR.set_xlabel('t')
axR.set_ylabel('x')
axR.grid(True)

fig.show()

20160220_g1.png

pas de partage

20160220_g2.png

Rendez-le un peu compliqué.

Si vous souhaitez afficher normalement deux graphiques dans la première colonne et utiliser tous les graphiques de la deuxième colonne pour afficher un long graphique, vous pouvez utiliser subplot2grid comme indiqué ci-dessous.

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = x1 + x2

fig = plt.figure(figsize=(10,8))
ax1 = plt.subplot2grid((2,2), (0,0))
ax2 = plt.subplot2grid((2,2), (0,1))
ax3 = plt.subplot2grid((2,2), (1,0), colspan=2)

ax1.plot(t, x1, linewidth=2)
ax1.set_title('sin')
ax1.set_xlabel('t')
ax1.set_ylabel('x')
ax1.set_xlim(-np.pi, np.pi)
ax1.grid(True)

ax2.plot(t, x2, linewidth=2)
ax2.set_title('cos')
ax2.set_xlabel('t')
ax2.set_ylabel('x')
ax2.set_xlim(-np.pi, np.pi)
ax2.grid(True)

ax3.plot(t, x3, linewidth=2)
ax3.set_title('sin+cos')
ax3.set_xlabel('t')
ax3.set_ylabel('x')
ax3.set_xlim(-np.pi, np.pi)
ax3.grid(True)

fig.show()

multiplot_02.png

Une autre option est d'utiliser matplotlib.gridspec. Dans ce cas, spécifiez la partie utilisée du tableau bidimensionnel obtenu par gridspec.Gridspec (xxx, yyy) et utilisez-la comme argument de subplot. Par exemple, si vous souhaitez utiliser le coin supérieur gauche

gs = gridspec.GridSpec(2,2)
ax1 = plt.subplot(gs[0,0])

Sera.

De plus, si vous souhaitez utiliser toute la première ligne,

ax2 = plt.subplot(gs[1,:]) 

Sera.

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = x1 + x2

fig = plt.figure(figsize=(10,8))
gs = gridspec.GridSpec(2,2)

ax1 = plt.subplot(gs[0,0])
ax2 = plt.subplot(gs[0,1])
ax3 = plt.subplot(gs[1,:])

ax1.plot(t, x1, linewidth=2)
ax1.set_title('sin')
ax1.set_xlabel('t')
ax1.set_ylabel('x')
ax1.set_xlim(-np.pi, np.pi)
ax1.grid(True)

ax2.plot(t, x2, linewidth=2)
ax2.set_title('cos')
ax2.set_xlabel('t')
ax2.set_ylabel('x')
ax2.set_xlim(-np.pi, np.pi)
ax2.grid(True)

ax3.plot(t, x3, linewidth=2)
ax3.set_title('sin+cos')
ax3.set_xlabel('t')
ax3.set_ylabel('x')
ax3.set_xlim(-np.pi, np.pi)
ax3.grid(True)

fig.show()

Faire un vide avec des sous-graphiques

S'il y a peu de graphiques pour le cadre créé par les sous-graphiques, l'axe («off») est appliqué à la zone que vous ne souhaitez pas dessiner.

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)


x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = x1 + x2

fig,axes = plt.subplots(nrows=2,ncols=2,figsize=(10,8))


axes[0,0].plot(t, x1, linewidth=2)
axes[0,0].set_title('sin')
axes[0,0].set_xlabel('t')
axes[0,0].set_ylabel('x')
axes[0,0].set_xlim(-np.pi, np.pi)
axes[0,0].grid(True)

axes[0,1].plot(t, x2, linewidth=2)
axes[0,1].set_title('cos')
axes[0,1].set_xlabel('t')
axes[0,1].set_ylabel('x')
axes[0,1].set_xlim(-np.pi, np.pi)
axes[0,1].grid(True)

axes[1,0].plot(t, x3, linewidth=2)
axes[1,0].set_title('sin+cos')
axes[1,0].set_xlabel('t')
axes[1,0].set_ylabel('x')
axes[1,0].set_xlim(-np.pi, np.pi)
axes[1,0].grid(True)

axes[1,1].axis('off')

download (67).png

J'ai fait référence à ce qui suit http://matplotlib.org/examples/pylab_examples/subplots_demo.html http://matplotlib.org/users/recipes.html

Recommended Posts

[Python] Comment dessiner plusieurs graphiques avec Matplotlib
Dessinez facilement des graphiques avec matplotlib
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Comment titrer plusieurs figures avec matplotlib
[Python] Comment dessiner un histogramme avec Matplotlib
Animer plusieurs graphiques avec matplotlib
Comment dessiner un graphique à barres qui résume plusieurs séries avec matplotlib
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Comment démarrer avec Python
Comment calculer la date avec python
Dessinez Riapnov Fractal avec Python, matplotlib
Comment dessiner un graphique avec Matplotlib
Comment utiliser BigQuery en Python
Comment faire un test de sac avec python
Comment afficher le japonais python avec lolipop
Comment entrer le japonais avec les malédictions Python
Comment installer python3 avec docker centos
Deux façons d'afficher plusieurs graphiques dans une seule image avec matplotlib
Comment attribuer plusieurs valeurs à la barre de couleurs Matplotlib
Comment télécharger avec Heroku, Flask, Python, Git (4)
Comment profiter de la programmation avec Minecraft (Ruby, Python)
[REAPER] Comment jouer à Reascript avec Python
[Petite histoire] Comment enregistrer des graphiques matplotlib dans un lot avec Jupyter
Comment faire un traitement parallèle multicœur avec python
Comment installer Python
Comment dessiner un graphique à 2 axes avec pyplot
Dessinez plusieurs graphiques à l'aide de figures et d'axes matplotlib
Essayez de dessiner une courbe de vie avec python
Je souhaite afficher plusieurs images avec matplotlib.
[Python] Comment lire des fichiers Excel avec des pandas
Comment recadrer une image avec Python + OpenCV
Comment installer python
Dessinez des graphiques dans Julia ... Laissez les graphiques à Python
Carte thermique par Python + matplotlib
Comment spécifier des attributs avec Mock of Python
Comment dessiner une ligne verticale sur une carte de chaleur dessinée avec Python Seaborn
Comment utiliser Matplotlib
Comment mesurer le temps d'exécution avec Python Partie 1
Comment utiliser tkinter avec python dans pyenv
Comment afficher des images en continu avec matplotlib Memo
[Python] Comment gérer les caractères japonais avec openCV
[Python] Mention à plusieurs personnes avec l'API de Slack
[Python] Comment comparer la date / heure avec le fuseau horaire ajouté
Comment mesurer le temps d'exécution avec Python, partie 2
Comment renvoyer plusieurs index avec la méthode d'index
[Python] Personnalisez la palette de couleurs lors du dessin de graphiques avec matplotlib
[Astuces Python] Comment récupérer plusieurs clés avec la valeur maximale du dictionnaire
Comment convertir / restaurer une chaîne avec [] en python
J'ai essayé de résumer comment utiliser matplotlib de python
Comment écrire une concaténation de chaînes sur plusieurs lignes en Python
Comment récupérer des données d'image de Flickr avec Python
Comment faire un calcul de hachage avec Salt en Python
[Introduction à Python] Comment itérer avec la fonction range?
Comment télécharger avec Heroku, Flask, Python, Git (Partie 3)
Comment exécuter des tests avec Python unittest
[Python] Comment spécifier l'emplacement de téléchargement avec youtube-dl
Comment mesurer le temps de lecture d'un fichier mp3 avec python
Comment utiliser le mode interactif python avec git bash