teaching:progappchim:matplotlib_simple

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
teaching:progappchim:matplotlib_simple [2015/07/21 21:49] – [Références] villersdteaching:progappchim:matplotlib_simple [2018/11/12 10:32] – [Références] villersd
Ligne 23: Ligne 23:
   * standard : <code>import matplotlib as mpl   * standard : <code>import matplotlib as mpl
 import matplotlib.pyplot as plt</code> import matplotlib.pyplot as plt</code>
-  * alternative, simplifiée (en mode pylab) : <code>from pylab import *</code>+  * alternative, simplifiée (en mode pylab, pour obtenir une certaine compatibilité avec Matlab) : <code>from pylab import *</code>
  
 ===== Graphiques de séries de points en lignes ===== ===== Graphiques de séries de points en lignes =====
 Il s'agit d'un graphe classique de séries de points reliés par une ligne colorée : Il s'agit d'un graphe classique de séries de points reliés par une ligne colorée :
-<sxh python; title : simple_series_01.py>+<code python simple_series_01.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 50: Ligne 50:
  
 plt.show()  # vue interactive de la figure plt.show()  # vue interactive de la figure
-</sxh>+</code>
  
 Le même graphique peut être agrémenté d'un titre, d'appellations pour les axes, de valeurs limites, d'une légende : Le même graphique peut être agrémenté d'un titre, d'appellations pour les axes, de valeurs limites, d'une légende :
  
-<sxh python; title : simple_series_02.py>+<code python simple_series_02.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 65: Ligne 65:
    
 plt.figure()  #initialisation d'une nouvelle figure plt.figure()  #initialisation d'une nouvelle figure
-plt.title(u"Ma première figure avec Matplolib") # la chaine unicode est préfixée par u (présence de caractères non ASCII primitifs)+plt.title("Ma première figure avec Matplolib"
  
 #les données #les données
-serie_x = [0.,1.,2.,3.,5.,7.,11.,13.,17.,19.]+serie_x = [0., 1., 2., 3., 5., 7., 11., 13., 17., 19.]
 serie_y1 = [x**2 for x in serie_x] serie_y1 = [x**2 for x in serie_x]
 serie_y2 = [x**1.5 for x in serie_x] serie_y2 = [x**1.5 for x in serie_x]
Ligne 78: Ligne 78:
 plt.plot(serie_x, serie_y1, label="x^2") plt.plot(serie_x, serie_y1, label="x^2")
 plt.plot(serie_x, serie_y2, label="x^1.5") plt.plot(serie_x, serie_y2, label="x^1.5")
-plt.xlabel(u"Les données X"  +plt.xlabel("Les données X"  
-plt.ylabel(u"Des valeurs calculées de Y")+plt.ylabel("Des valeurs calculées de Y")
  
 #ajout d'une légende #ajout d'une légende
Ligne 87: Ligne 87:
  
 plt.show()  # vue interactive de la figure plt.show()  # vue interactive de la figure
-</sxh>+</code>
  
 ===== Changer simplement les lignes en points ===== ===== Changer simplement les lignes en points =====
 La personnalisation des lignes ou point se fait très facilement lorsqu'on utilise la fonction de traçage, en passant dans une chaîne de deux caractères la spécification du type de ligne et de la couleur à utiliser. Voici un exemple d'un graphique qui utilise des cercles verts comme marqueurs, sans ligne, grâce aux deux caractères "g" (pour green ou vert) et "o" (pour figurer des petits cercles. La personnalisation des lignes ou point se fait très facilement lorsqu'on utilise la fonction de traçage, en passant dans une chaîne de deux caractères la spécification du type de ligne et de la couleur à utiliser. Voici un exemple d'un graphique qui utilise des cercles verts comme marqueurs, sans ligne, grâce aux deux caractères "g" (pour green ou vert) et "o" (pour figurer des petits cercles.
-<sxh python; title : simple_series_03.py>+ 
 +<code python simple_series_03.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 104: Ligne 105:
  
 #les données #les données
-serie_x = [0.,1.,2.,3.,5.,7.,11.,13.,17.,19.]+serie_x = [0., 1., 2., 3., 5., 7., 11., 13., 17., 19.]
 serie_y1 = [x**2 for x in serie_x] serie_y1 = [x**2 for x in serie_x]
  
Ligne 112: Ligne 113:
 plt.show()  # vue interactive de la figure plt.show()  # vue interactive de la figure
  
-</sxh>+</code> 
 Pour essayer d'autres marqueurs ou couleurs, consultez la documentation ici : Pour essayer d'autres marqueurs ou couleurs, consultez la documentation ici :
   * [[http://matplotlib.org/api/markers_api.html]]   * [[http://matplotlib.org/api/markers_api.html]]
Ligne 119: Ligne 121:
  
 ===== Tracé d'une fonction ===== ===== Tracé d'une fonction =====
-<sxh python; title : simple_fonction_01.py>+<code python simple_fonction_01.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 143: Ligne 145:
  
 show() show()
-</sxh>+</code>
  
 ===== Graphe simple de sinus et cosinus ===== ===== Graphe simple de sinus et cosinus =====
Ligne 157: Ligne 159:
 | {{:teaching:progappchim:ph_topographic-01.png?280|}} \\ [[teaching:progappchim:ph-3d|Ph à 3D]] \\ (dilution et neutralisation)| un autre... | un autre... | | {{:teaching:progappchim:ph_topographic-01.png?280|}} \\ [[teaching:progappchim:ph-3d|Ph à 3D]] \\ (dilution et neutralisation)| un autre... | un autre... |
 | un autre... | un autre... | un autre... | | un autre... | un autre... | un autre... |
 +
 +===== Utilisation "inline" ou en fenêtre interactive, sous Spyder =====
 +Notamment avec l'éditeur Spyder, il est possible de choisir le mode d'affichage des graphes :
 +  * dans une fenêtre interactive
 +  * en ligne (mode "inline") sous forme d'une image au format .png, dans la console
 +Pour choisir le mode, utiliser les réglages suivants de Spyder : menu Outils - option Préférences - rubrique Console Ipython - onglet Graphiques - la sortie "Automatique" permet d'obtenir les graphes dans une fenêtre interactive, sinon, choisir "En ligne". L'option sera prise en compte après avoir quitté Spyder et l'avoir relancé. Sinon, il est possible de sélectionner l'un ou l'autre des modes par les commandes suivantes dans la console :
 +<code>
 +%matplotlib auto
 +%matplotlib inline
 +</code>
  
 ===== Références ===== ===== Références =====
Ligne 167: Ligne 179:
   * [[http://www-irma.u-strasbg.fr/~navaro/imfs/matplotlib.pdf|Une présentation synthétique en français]]   * [[http://www-irma.u-strasbg.fr/~navaro/imfs/matplotlib.pdf|Une présentation synthétique en français]]
   * [[http://python.developpez.com/tutoriels/graphique-2d/matplotlib/|Tutoriel en français]]   * [[http://python.developpez.com/tutoriels/graphique-2d/matplotlib/|Tutoriel en français]]
 +  * [[http://www.science-emergence.com/Matplotlib/|Un autre tutoriel en français]]
 +  * [[http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb|matplotlib - 2D and 3D plotting in Python]], tutoriel Jupyter en anglais
   * [[https://github.com/thehackerwithin/PyTrieste/wiki/Python7-MatPlotLib|Un tutoriel en anglais]]   * [[https://github.com/thehackerwithin/PyTrieste/wiki/Python7-MatPlotLib|Un tutoriel en anglais]]
   * [[http://scipy-lectures.github.io/intro/matplotlib/matplotlib.html|Matplotlib: plotting]], par Nicolas Rougier, Mike Müller, Gaël Varoquaux (et la [[http://www.labri.fr/perso/nrougier/teaching/matplotlib/|version dérivée]] de Nicolas Rougier)   * [[http://scipy-lectures.github.io/intro/matplotlib/matplotlib.html|Matplotlib: plotting]], par Nicolas Rougier, Mike Müller, Gaël Varoquaux (et la [[http://www.labri.fr/perso/nrougier/teaching/matplotlib/|version dérivée]] de Nicolas Rougier)
 +  * [[https://realpython.com/python-matplotlib-guide/|Python Plotting With Matplotlib (Guide)]], 2018
   * [[http://www.thetechrepo.com/main-articles/465-how-to-create-a-graph-in-python.html]]   * [[http://www.thetechrepo.com/main-articles/465-how-to-create-a-graph-in-python.html]]
   * Un article intéressant sur les recommandations pour de bonnes figures : [[http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003833|Ten Simple Rules for Better Figures]], Nicolas P. Rougier (INRIA, France). Les figures sont crées avec matplotlib et l'ensemble de l'article est disponible sous licence CC0.   * Un article intéressant sur les recommandations pour de bonnes figures : [[http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003833|Ten Simple Rules for Better Figures]], Nicolas P. Rougier (INRIA, France). Les figures sont crées avec matplotlib et l'ensemble de l'article est disponible sous licence CC0.
   * [[http://python4mpia.github.io/plotting/plotting.html|Tutoriels du Max Planck Institute for Astronomy]], avec introduction et fonctions avancées   * [[http://python4mpia.github.io/plotting/plotting.html|Tutoriels du Max Planck Institute for Astronomy]], avec introduction et fonctions avancées
   * [[http://geeksta.net/geeklog/custom-matplotlib-styles/|Customizing Matplotlib's Plotting Styles]]   * [[http://geeksta.net/geeklog/custom-matplotlib-styles/|Customizing Matplotlib's Plotting Styles]]
 +  * [[http://bokeh.pydata.org/en/latest/|Bokeh]], une autre librairie de visualisation
 +  * [[https://seaborn.pydata.org/|Seaborn]], une librairie basée sur Matplotlib
 +    * [[https://python-graph-gallery.com/|the Python Graph Gallery]], galerie de graphes Seaborn/Matplotlib avec code
 +    * [[https://medium.com/@neuralnets/statistical-data-visualization-series-with-python-and-seaborn-for-data-science-5a73b128851d|Data Visualization with Python and Seaborn]]
 +  * [[https://waterprogramming.wordpress.com/2016/04/29/interactive-plotting-basics-in-matplotlib/|Interactive plotting basics in matplotlib]]
 +  * [[https://heartbeat.fritz.ai/introduction-to-matplotlib-data-visualization-in-python-d9143287ae39|Introduction to Matplotlib — Data Visualization in Python]]
 +  * [[https://towardsdatascience.com/all-your-matplotlib-questions-answered-420dd95cb4ff|Your Ultimate Guide to Matplotlib]] (not so ultimate...)
  
 +==== Exemples ==== 
 +  * [[https://towardsdatascience.com/5-quick-and-easy-data-visualizations-in-python-with-code-a2284bae952f|5 Quick and Easy Data Visualizations in Python with Code]] 
 +  * Jupyter notebooks :  
 +    * [[http://nbviewer.jupyter.org/github/jming/cs109/blob/master/lec_03_statistical_graphs.ipynb|A Gallery of Statistical Graphs in Matplotlib]] 
 +    * [[http://nbviewer.jupyter.org/url/jakevdp.github.com/downloads/notebooks/XKCD_plots.ipynb|XKCD plots in Matplotlib]] + [[http://nbviewer.jupyter.org/url/jakevdp.github.io/downloads/notebooks/XKCD_sketch_path.ipynb|ceci]]
  • teaching/progappchim/matplotlib_simple.txt
  • Dernière modification : 2023/07/11 07:46
  • de villersd