{ "metadata": { "name": "", "signature": "sha256:05b46c4cc8fa4c6673f4e6fe96ec54c4e63d1f27daba02c6ab584ea3a232bb80" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Tutoriel improvis\u00e9: Manipuler des donn\u00e9es en Python avec pandas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Session de ~2h avec pour objectifs:\n", "\n", "* \"d\u00e9marrage \u00e0 froid\" en Python: installation ([Anaconda](https://store.continuum.io/cshop/anaconda/)), prise en main du [Notebook IPython](http://ipython.org/notebook.html) [0h30]\n", "* exploration rapide de Python num\u00e9rique: calcul avec [numpy](http://www.numpy.org/), et trac\u00e9s avec [Matplotlib](http://matplotlib.org/) [1h]\n", "* objectif final: charger, manipuler et tracer les donn\u00e9es d'un capteur de temp\u00e9rature et de CO2*, avec [pandas](http://pandas.pydata.org/) [1h]\n", "\n", "\n", "**5 f\u00e9vrier 2015**, 14h-16h30, anim\u00e9 par Pierre Haessig \n", "\n", "\\* *mise en ab\u00eeme*: la session a lieu dans la salle o\u00f9 est install\u00e9e ce capteur..." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "1) D\u00e9marrage" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "a) Installation de Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La distribution **Ananconda**, de *Continuum Analytics*, contient tous les paquets n\u00e9cessaires pour une utilisation scientifique classique.\n", "\n", "[lien direct de t\u00e9l\u00e9chargement](http://continuum.io/downloads) (300 Mo, gratuit)\n", "\n", "\u2192 choisir la version adapt\u00e9e au syst\u00e8me d'exploitation (e.g. 32 vs. 64 bits)" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "b) Notebook IPython" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Sous Windows, dans le Menu D\u00e9marrer, lancer \"Anaconda/IPython Notebook\"*.\n", "\n", "\u2192 Ouvre une fen\u00eatre de commande (le serveur) et une fen\u00eatre de navigateur: l'interface du Notebook avec laquelle on va interagir" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "tour de l'interface" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Essayer dans le menu: \"Help/User Interface Tour\"\n", "* introduction rapide au shell IPython: http://ipython.org/ipython-doc/dev/interactive/tutorial.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cellule de type \"Code\":" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = 1\n", "a+2" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "3" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cellule de type \"Markdown\":\n", "\n", "* pour y \u00e9crire du texte (avec un peu de *mise en forme*, avec la syntaxe Markdown)\n", "* et les \u00e9quations Latex: $\\theta = 1$\n", "\n", "Aide sur la syntaxe: [\"Markdown basics\"](https://help.github.com/articles/markdown-basics/)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "2) Exploration de Python num\u00e9rique: Numpy et Matplotlib" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importer des modules (avec un alias court, plus pratique)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 66 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importer juste un \u00e9l\u00e9ment:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import pi\n", "pi" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "3.141592653589793" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Activer l'affichage des graphiques dans le Notebook (image statique)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 66 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Activer l'affichage dans une fen\u00eatre s\u00e9par\u00e9 (interactif)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib qt" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Un petit trac\u00e9 Matplotlib" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vecteur de donn\u00e9es \u00e0 tracer" ] }, { "cell_type": "code", "collapsed": false, "input": [ "t = np.linspace(0, 4*pi)\n", "y = np.sin(t)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Syntaxe de graphs avec Matplotlib: tr\u00e8s proche de Matlab (volontairement)\n", "\n", "Galerie d'exemples, tr\u00e8s pratique pour d\u00e9couvrir: http://matplotlib.org/gallery.html" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(t, y) # affiche y=f(t)\n", "plt.title('sinus')\n", "plt.xlabel('temps (s)')\n", "plt.grid(True)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 67 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "3) Lecture de donn\u00e9es" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "La \"magic\" `%ls` permet de lister le contenu d'un r\u00e9pertoire (comme `ls` sour Linux, `dir` sous Windows)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%ls *.csv" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "log-20150128-092830.csv\r\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nom du fichier \u00e0 lire (qui est ici dans le r\u00e9pertoire courant o\u00f9 le Notebook a \u00e9t\u00e9 ex\u00e9cut\u00e9)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pwd" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "u'/home/pierre'" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "fname = 'log-20150128-092830.csv'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Affichage du contenu du fichier:\n", "\n", "* `head` et `tail` sous Linux (appel au shell avec le signe `!`)\n", "* sinon magic `%more`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!tail $fname" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "05/02/2015;15:19:19.813;indoor relative humidity;34.0;%\r", "\r\n", "05/02/2015;15:19:23.623;indoor temperature;23.5;\ufffdC\r", "\r\n", "05/02/2015;15:19:30.553;volatile organic compounds;0.18;ppm\r", "\r\n", "05/02/2015;15:19:35.253;carbon dioxide;2100;ppm\r", "\r\n", "05/02/2015;15:20:19.215;indoor relative humidity;34.0;%\r", "\r\n", "05/02/2015;15:21:20.317;indoor relative humidity;34.0;%\r", "\r\n", "05/02/2015;15:22:18.520;indoor relative humidity;34.0;%\r", "\r\n", "05/02/2015;15:22:25.140;indoor temperature;23.5;\ufffdC\r", "\r\n", "05/02/2015;15:22:28.230;volatile organic compounds;0.18;ppm\r", "\r\n", "05/02/2015;15:22:35.361;carbon dioxide;2160;ppm\r", "\r\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# affiche *tout* le fichier dans le pager\n", "%more $fname" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "a) Lecture (parsing) du ficher CSV:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "la fonction qui fait le travail: `read_csv`.\n", "\n", "* (+) Pratique,\n", "* (-) mais avec *beaucoup* d'options" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Afficher l'aide (syntaxe sp\u00e9cifique \u00e0 la console IPython)\n", "pd.read_csv?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Appel simple, en pr\u00e9cisant juste le s\u00e9parateur des champs:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "d = pd.read_csv(fname, sep=';')\n", "d.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datetimetypevalueunit
0 28/01/2015 09:28:45.871 indoor relative humidity 36.00 %
1 28/01/2015 09:29:44.274 indoor relative humidity 36.00 %
2 28/01/2015 09:30:46.377 indoor relative humidity 37.00 %
3 28/01/2015 09:30:50.697 indoor temperature 21.20 \ufffdC
4 28/01/2015 09:30:55.908 volatile organic compounds 0.06 ppm
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ " date time type value unit\n", "0 28/01/2015 09:28:45.871 indoor relative humidity 36.00 %\n", "1 28/01/2015 09:29:44.274 indoor relative humidity 36.00 %\n", "2 28/01/2015 09:30:46.377 indoor relative humidity 37.00 %\n", "3 28/01/2015 09:30:50.697 indoor temperature 21.20 \ufffdC\n", "4 28/01/2015 09:30:55.908 volatile organic compounds 0.06 ppm" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u2192 Lecture sans erreur, mais les dates ne sont pas analys\u00e9es (elles restent sous forme de cha\u00eenes de caract\u00e8res)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "d['date'][0]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "'28/01/2015'" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "type(d['date'][0])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "str" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Appel de `read_csv` avec des options adapt\u00e9es \u00e0 ce fichier:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "d = pd.read_csv(fname, sep=';',\n", " parse_dates=[[0,1]], # aller chercher la date dans les 2 premi\u00e8re colonnes\n", " index_col=0, # utiliser la date comme index des donn\u00e9es\n", " dayfirst=True, # ne pas confondre le 5 f\u00e9vrier avec le 2 mai (format am\u00e9ricain MM-DD-YYYY)\n", " )\n", "d.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typevalueunit
date_time
2015-01-28 09:28:45.871000 indoor relative humidity 36.00 %
2015-01-28 09:29:44.274000 indoor relative humidity 36.00 %
2015-01-28 09:30:46.377000 indoor relative humidity 37.00 %
2015-01-28 09:30:50.697000 indoor temperature 21.20 \ufffdC
2015-01-28 09:30:55.908000 volatile organic compounds 0.06 ppm
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ " type value unit\n", "date_time \n", "2015-01-28 09:28:45.871000 indoor relative humidity 36.00 %\n", "2015-01-28 09:29:44.274000 indoor relative humidity 36.00 %\n", "2015-01-28 09:30:46.377000 indoor relative humidity 37.00 %\n", "2015-01-28 09:30:50.697000 indoor temperature 21.20 \ufffdC\n", "2015-01-28 09:30:55.908000 volatile organic compounds 0.06 ppm" ] } ], "prompt_number": 26 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "b) Manipulation des donn\u00e9es" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "les donn\u00e9s sont dans un `pandas.DataFrame`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "type(d)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "pandas.core.frame.DataFrame" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "On r\u00e9cup\u00e8re une colonne par indexation. Objet de type `Series`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "vals = d['value']\n", "vals.head()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "date_time\n", "2015-01-28 09:28:45.871000 36.00\n", "2015-01-28 09:29:44.274000 36.00\n", "2015-01-28 09:30:46.377000 37.00\n", "2015-01-28 09:30:50.697000 21.20\n", "2015-01-28 09:30:55.908000 0.06\n", "Name: value, dtype: float64" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "type(vals)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "pandas.core.series.Series" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tout les type de mesures issues du capteur" ] }, { "cell_type": "code", "collapsed": false, "input": [ "type_meas = d['type']\n", "type_meas.unique()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "array(['indoor relative humidity', 'indoor temperature',\n", " 'volatile organic compounds', 'carbon dioxide'], dtype=object)" ] } ], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "R\u00e9cup\u00e9rer seulement un type de mesures: la temp\u00e9rature" ] }, { "cell_type": "code", "collapsed": false, "input": [ "temp = vals[d['type'] == 'indoor temperature']\n", "temp.head(3)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 35, "text": [ "date_time\n", "2015-01-28 09:30:50.697000 21.2\n", "2015-01-28 09:33:49.494000 21.4\n", "2015-01-28 09:36:51.682000 21.2\n", "Name: value, dtype: float64" ] } ], "prompt_number": 35 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exo: faire la m\u00eame chose pour le CO2" ] }, { "cell_type": "code", "collapsed": false, "input": [ "co2 = vals[d['type'] == 'carbon dioxide']\n", "co2.head(3)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 43, "text": [ "date_time\n", "2015-01-28 09:31:01.408000 390\n", "2015-01-28 09:33:59.015000 390\n", "2015-01-28 09:37:01.512000 390\n", "Name: value, dtype: float64" ] } ], "prompt_number": 43 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Statistique par groupes: `groupby`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Par type de mesure" ] }, { "cell_type": "code", "collapsed": false, "input": [ "d.groupby('type').mean()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
value
type
carbon dioxide 441.214809
indoor relative humidity 29.069816
indoor temperature 20.549659
volatile organic compounds 0.059591
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 172, "text": [ " value\n", "type \n", "carbon dioxide 441.214809\n", "indoor relative humidity 29.069816\n", "indoor temperature 20.549659\n", "volatile organic compounds 0.059591" ] } ], "prompt_number": 172 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Statistiques par jour" ] }, { "cell_type": "code", "collapsed": false, "input": [ "temp.groupby(temp.index.dayofyear).mean()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "28 21.091349\n", "29 21.766250\n", "30 21.304792\n", "31 19.128750\n", "32 18.576458\n", "33 20.560417\n", "34 21.048125\n", "35 20.702917\n", "36 21.225649\n", "Name: value, dtype: float64" ] } ], "prompt_number": 39 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Changer la fr\u00e9quence: r\u00e9\u00e9chantillonage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sous \u00e9chantillonage: moyennes journali\u00e8res" ] }, { "cell_type": "code", "collapsed": false, "input": [ "temp.resample('1D')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 55, "text": [ "date_time\n", "2015-01-28 21.091349\n", "2015-01-29 21.766250\n", "2015-01-30 21.304792\n", "2015-01-31 19.128750\n", "2015-02-01 18.576458\n", "2015-02-02 20.560417\n", "2015-02-03 21.048125\n", "2015-02-04 20.702917\n", "2015-02-05 21.225649\n", "Freq: D, Name: value, dtype: float64" ] } ], "prompt_number": 55 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sur \u00e9chantillonage: il faut combler les trous" ] }, { "cell_type": "code", "collapsed": false, "input": [ "temp.resample('1Min').head()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 62, "text": [ "date_time\n", "2015-01-28 09:30:00 21.2\n", "2015-01-28 09:31:00 NaN\n", "2015-01-28 09:32:00 NaN\n", "2015-01-28 09:33:00 21.4\n", "2015-01-28 09:34:00 NaN\n", "Freq: T, Name: value, dtype: float64" ] } ], "prompt_number": 62 }, { "cell_type": "code", "collapsed": false, "input": [ "temp.resample('1Min', fill_method='bfill').head()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 57, "text": [ "date_time\n", "2015-01-28 09:30:00 21.2\n", "2015-01-28 09:31:00 21.4\n", "2015-01-28 09:32:00 21.4\n", "2015-01-28 09:33:00 21.4\n", "2015-01-28 09:34:00 21.2\n", "Freq: T, Name: value, dtype: float64" ] } ], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": [ "temp.resample('1Min').interpolate().head()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 60, "text": [ "date_time\n", "2015-01-28 09:30:00 21.200000\n", "2015-01-28 09:31:00 21.266667\n", "2015-01-28 09:32:00 21.333333\n", "2015-01-28 09:33:00 21.400000\n", "2015-01-28 09:34:00 21.333333\n", "Freq: T, Name: value, dtype: float64" ] } ], "prompt_number": 60 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "c) Trac\u00e9 des donn\u00e9es capteur" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 64 }, { "cell_type": "code", "collapsed": false, "input": [ "temp.plot()\n", "plt.ylabel(u'temp\u00e9rature (\u00b0C)') # u'' pour des textes accentu\u00e9s" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 75, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 75 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deux trac\u00e9s sur le m\u00eame axe: `twinx` (pb de grille non superpos\u00e9e)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "temp.plot()\n", "plt.twinx()\n", "co2.plot(style='r');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEYCAYAAACOSYuzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXe4FcX5xz8D0quoSFEEsRP1IipqLBcL9h41RhNRfxqj\n0WgsscWWxESNii2xF0wkUSHYC8o9KioiCki1o3BpKki7F257f3/MGXbPnt1Td8/Zy53P85xnd2bb\n9+zZs+/MvDPvKBHBYrFYLJYoaFVuARaLxWLZcLFGxmKxWCyRYY2MxWKxWCLDGhmLxWKxRIY1MhaL\nxWKJDGtkLBaLxRIZkRsZpdSWSqkqpdQspdRMpdRFyfwblFILlFJTk5/DotZisVgsLZE83sOHu465\nSin1uVJqrlJquCt/iFJqRnLbXVmvHfU4GaVUL6CXiExTSnUGPgKOA04GVonIHZEKsFgslhZOvu9h\npdROwFPAHkBf4A1gWxERpdRk4LciMlkp9TJwt4i8GnTtyGsyIrJYRKYl11cDc5KiAVTU17dYLJaW\nTgHv4WOB0SJSLyLzgC+AoUqp3kAXEZmc3G8U2lgFUlKfjFKqPzAYmJTMulApNV0p9YhSqnsptVgs\nFktLJMf3cB9ggeuwBWij5M2vxjFWvpTMyCSraM8Cv0ta0n8CA4AKYBFwe6m0WCwWS0ukHO/hjcI+\noR9KqTbAGOBfIjIOQESWurY/DLzgc5wNrGaxWCwFICIpzWB5voergS1dh2+BrsFUJ9fd+dWZdJSi\nd5kCHgFmi8hIV35v127HAzP8jheRSD9nnHFG5NfYkPVZjS1DX3PQGHd9pdQYwnv4eeDnSqm2SqkB\nwLbAZBFZDKxUSg1NnvOXwLhMNqAUNZmfAqcDnyilpibzrgZOVUpVAAJ8Dfy6BFosFoulJZLXe1hE\nZiulngZmAw3A+eJYr/OBx4EOwMuSoWcZlMDIiMhE/GtMr0R97Vzo379/uSVkJO76wGoMg7jrg/hr\njLs+KJ/GQt7DInIzcLNP/kfAzrleu8WP+K+srCy3hIzEXR9YjWEQd30Qf41x1wfNQ2PYtHgjY7FY\nLJbosEbGYrFYLJEReViZYlBKSZz1WSwWSxxRSiGeLszlwtZkLBaLxRIZLd7IJBKJckvISNz1gdUY\nBnHXB/HXGHd90Dw0hk2LNzIWi8ViiQ7rk7FYLJYNDOuTsVgsFkuLoMUbmbi3kcZdH1iNYRB3fRB/\njXHXB81DY9i0eCOTjaVLYd68cquwWCyW5on1yWShogKmT4cY3yaLxWJJwfpkmhErVpRbgcVisTRf\nWryRydZG2rp1aXQE0RzacK3G4om7Poi/xrjrg+ahMWxavJHJRit7hywWi6VgrE8mqwa9jPFtslgs\nlhRalE9GKbWlUqpKKTVLKTVTKXWRZ/ulSqkmpVSPqLVYLBaLpbSUojGoHrhERAYBewEXKKV2BG2A\ngEOAb0qgw5e4t5HGXR9YjWEQd30Qf41x1wfNQ2PYRG5kRGSxiExLrq8G5gB9kpvvAK6IWkOh7Lhj\nuRVYLBZL86akPhmlVH/gLWAQcBBQKSKXKKW+BoaIyDLP/mX1yShXi6b1yVgsluZCnHwyG5XqQkqp\nzsCzwO+AJuBqdFPZ+l1KpcVisVgspaEkNRmlVBvgReAVERmplNoZeAOoSe6yBVAN7CkiS13HyRln\nnEH//v0B6N69OxUVFVRWVgJO+2Yx6WnTpnHxxRf7blcqkVRSiUg41wtTX1zSJi8uevzSXq3l1tPc\n9AGMHDky9P9fS9JXyv9znGoyiEikH3QNZRRwZ4Z9vgZ6+ORL1FRVVQVu23NPEd1QFrmMQDLpiwtW\nY/HEXZ9I/DXGXZ9IiTSuWSPJd2fk7/dcPpHXZJRS+wJvA58A5mJXi8grrn2+AnaXGPtkGhrKP/rf\nYrFYsvKXv6CuvTY2NZnIfTIiMpEsvdhEZOuodRTLunXQsWO5VVgsFksW6uvLrSCFFh80xd0Wnom6\numh1BJGrvkwsWBBt77gwNEZN3DXGXR/EX2Pc9UGJNDY0RH+NPGjxRiYXunfXNZnmypZbwujR5VZh\nsVhKQsxqMjZ2WQYOOABuvBF++Ut4913o169sUopCKbj3XrjggnIrsVgskXPppag77oiNT8bWZDLw\n9tvQ1ATt2jXvmozFYmlBrF1bbgUptHgjE9RGaipQy5drI9OcfTJRYzUWT9z1Qfw1xl0flEjjqlXR\nXyMPWryRCWL1ar1cswbatCmfkbFYLJa8iJmRsT6ZAC6+GO66C+bO1T6Ze+6BoUPLIqVorE/GYmlB\nHHww6s03rU8m7nz+uV5uvz20bRu7DhsWi8Xij0+zS9C8XkqpHkqp8Uqpz5RSryuluruOuUop9blS\naq5Sargrf4hSakZy213Z5LR4I5PNJwPayFifTDBWY/HEXR/EX2Pc9UFpNH6/xHecTNC8XlcC40Vk\nO+DNZBql1E7AKcBOwGHAP5RaHwPln8DZIrItsK1S6rBMekoWhbm5UVEBPZJzdZbTyFgsFks+rF2Z\n3uwiIouBxcn11UqpOUBf4BjggORuTwAJtKE5FhgtIvXAPKXUF8BQpdQ3QBcRmZw8ZhRwHPBqkJ4W\nX5MxEUy91NbCkCF6vVUrpyNAqQnSZxCBadNg5crM54nStZVNYxyIu8a464P4a4y7PiiNxsZ1mUf8\nJ+f1Ggx8AGwuIkuSm5YAmyfX+wALXIctQBslb351Mj+Q2NdkEolEWUJzr1kD8+cn0FmVzJ8fj1Dh\n3vSrr8Itt+h0VZX//hAfvTZt0zYdfjqRSPD4448D0HF5NUEk5/UaA/xORFYpVxRgERGlVPjF0XKH\ngc70oYyh/k87TWTUKL1+4YUid90VuRRfsoUGv+227NMRgMi994ary40NsV48cdcnEn+NcdcnUhqN\nc9jeN9Q/0AZ4DbjYlTcX6JVc7w3MTa5fCVzp2u9VYCjQC5jjyj8VuN97LfenxTeXBfHvf0OHDnq9\nbYx9Mu++W24FFoslTrQh3SeTdNo/AswWkZGuTc8DZyTXzwDGufJ/rpRqq5QaAGwLTBbt21mplBqa\nPOcvXcf4YsfJBF4bxoyBE06Aq6+Gzp31Mm6457wJulV2nIzF0jIQgfmt+rEV81PGyQTM63UVMBl4\nGugHzANOFpEfk8dcDZwFNKCb115L5g8BHgc6AC+LyEWZNMXeJ1MOGhv1sn17vYxzTSZXYlyWsFgs\nIbF2LWxEuuNfMs/rdbBfpojcDNzsk/8RsHOumlp8c5lxnrkx0zG0bauX5Qwr46cvbliNxRN3fRB/\njXHXB9Fr/PJL/+aychK5kckw0vRPSqnpSqlpSqk3lVJbRq0lV7xGpjnUZIYPz7xdxSLAhMViiZJl\ny6B965Y3aVnQSNNbRWRXEalAO46uL4GWNEx3QDcmhIxx/LdpAzNmlE6TGz99hl//2lkvZ9ibTBrj\nQtw1xl0fRK9x5kz45z8LP97eQ6iqgo1aWk1GRBaLyLTk+mpgDtBHRNyhQjsD30etJVdMTWb33fWy\nTx9YsaJ8eoJ48EG9/Pe/bWw1S/Pnttvg/PPLraJ58803LbC5zI1npClKqb8opb5Fd537Wym1GIJ8\nMptv7jQx9e6tX+JNTaXVBrm14Q4YkN3IROn4t23hxRN3fRC9xoULizve3kOoqYFWTfFqLitZ77Lk\nSNNn0V3hVgOIyDXANUqpK4E7gTO9x40YMYL+/fsD0L17dyoqKkIdMTtt2rS07dtsU8lGGznp1q0r\n+fhjaN8+weuvl3ZEr58+p8qt023bVlJfH3y+qEf8G+I0Atqmw09PmzYtsvOLwBtv6HShz2uU+sJK\nZ/o/h5Ge/00TraQMpeEMlGScjFKqDfAi8IpnIJDZ3g/d3/onnvyyjJP5+msYNgzmzdPpCRPgoIP0\nepy6Aiul/UVTpsBppwX7jZTS8+H89rel1Wex5EptLXTsqKfWmDu33GqaL4cOq+OVdzrRurGh5cwn\nEzTSVCm1rWu3Y4GpUWvJlYYG2MhVxyukZ1ljI9x+e3iagth4Y21ovv02+mtZLFFhJnNcvVpPFmgp\njHWr65GN2pRbRgql8Mn8FDgdGKaUmpr8HA78NTnxzTR0/fjSEmhJw9vkA9q/0batky7EyMyfD5dd\nVrgug58+N+PGQc+e2aMwR9mFOZvGOBB3jXHXB9FqXLVKRzuvrtaz0hZCS7+HAHVr6nWpM0ZE7pPJ\nMNL0laivXSjr1hVvZErR22uLLfSnU6dUvX7EqZnPYvGycqV+jmM2PX2zY90aTzNMDGjxI/4dJ7pD\nXR20a+ekt9su//NWB0fbzgs/fQbTrNc2OVi0XIYkk8a4EHeNcdcH0WocM6b4AnhLv4cA9TXxq8m0\neCPjh7cms8su+Z/D1H6ifPHX12sj06qVXtqxMpbmypo1cPbZ5VbR/KmraUC1sTWZWOHXRuqtybgx\nPc6yUVurlw1FdlnP1Ibb0OAUWtq1s/HVMhF3jXHXB7lpfOyxwsaTzZ0Lm2yS/3FuNpR7WCgi0FBb\nj2prazKxx1uTAWfelrfeyu0cNTV6WayRyYS7F1zbtlp3EDZ2maUUnHUWLF6c/3HLlukB0AbrQ8yf\nujrosFE9yjaXxYtcfDIA++wD55yjQ2nnQlhGJlMbrmkug+w1mSj/tLYtvHjirg9y11jIs9bQAP36\npabzZUO6h4VQWwsd21rHf7PghBN012AvDz0E552X/fg99nBiMEXlJ5k4URsVU2jJVpOxWKLm5uTM\nI4U0l9XUQJcuTtr6F4NRCubMSc9fuxY6t7OO/9gRRRvplClOrSIqn8zs2XrZKvkLmh5m5aClt4WH\nQdz1QXaNpkm5kGe+pkbPPmsoxMhsCPcwV/zivNmaTDNhyZLs+zz7LNx4I3z3XfZ9oyqRmdk7ja+l\nsTE3PRZLVJiwRoU8882lJrN2Lbz0UrlV+FdWamvjWZOJl8krA942UhPfy68w8OabOobZSSfp9Lx5\nujdNJqLyyWyxRWq6a9fso/6joqW3hYdB3PVBdo3z5+tlITVqr5Ep5ByluIdjxsDppxfu4wxLo19H\nnnXroH3r+BkZW5PxYEpQgwalb/M+H7m0PUfVu6yxEY45xkn36xff0p+lZZGvgRBJlsKLbC4rBa1i\n8sb0MzL19dChjW0uix3eNtLnntPLgw9O39f7gOViZEaPLkyXIagNd9261B5wbdpYn0wm4q4x7vog\nd435Podr1+pnuXVrJy+uPpkrriju+LA0+tWk6uqgXStbk2k2/P3v/vlffeWs52JkonruvUamnI5/\ni8VNvgaipkaH+S/mHKViwYLyXj9TM11dHbTfyNZkYke+baTdujnrTz2lw2FkIiqfzNq10L69k16w\nQM8pU45BbBuCP6HcxF0fZNbo7u3kV9iZPj145suwjExzv4e5YAq2fv/z+npoZ30yzZ/u3VPT2ea+\nOP74aHR4azITJ+rlDz9Ecz2LJROnnOKs+xmZigo4+WT/Y5tTTabcmF6lfq0otrkspuTbRur1y2SK\nALDzzsXXXHP1yRjK0cNsQ/InlIu464PMGpcvd9aDDERQrT4sI9Pc72EumHtojI0bbWRsc1ms+dnP\n8j/mT3/SPT1Mbw93NXaTTZzwMmETZGQGDkwtVVosDQ3Rx64z88BsvHGwb9Dtz7z8cvjVr/S6n5Gx\n/kV/shuZFliTUUptqZSqUkrNUkrNVEpdlMy/TSk1Ryk1XSk1VinVLdu5osDdRjpmjF5+/33mYw48\nMHibuwTWuzesWFG4Nghuw/UamYYGeP11vf7008VdM19aQlt41ESpz9S2i/XXZdK4erVeHnposIFw\nDxa+7z548km9XlMDHTqk7ht3n0y5xslkai5bu7blOv7rgUtEZBCwF3CBUmpH4HVgkIjsCnwGXFUC\nLYG4m5m6ds28b1Cp8Oij4aijnHSfPvDKK/D440XLS2H+fHjkkdSmu9atoW9fJ33bbeFe09J8MT2i\nohqzJaKjKIN+v3kd/N4XYkODMxUGpNdk2raNv08mqnv58cc6PmJQQTdTTUYbmRZYkxGRxSIyLbm+\nGpgD9BGR8SJiHr8PgC2CzhElpo30rbecAkC23+iuu3Rtwdu8+uKLMH68Xj/4YN0c8PHHcOaZxetz\n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\nIQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 74 }, { "cell_type": "markdown", "metadata": {}, "source": [ "La temp\u00e9rature et le CO2, superpos\u00e9s: `subplots`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fig, (ax1, ax2) = plt.subplots(2,1, sharex=True)\n", "\n", "temp.plot(ax=ax1)\n", "\n", "co2.plot(ax=ax2, style='r')\n", "plt.xlim('2015-02-03','2015-02-04')\n", "ax2.set_ylim(200, 1200);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 71 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remarque: gr\u00e2ce au param\u00e8tre `sharex`, le zoom est synchronis\u00e9 (utile en mode interactif, avec `%matplotlib qt`)." ] } ], "metadata": {} } ] }