{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. Bibliothèques en Python \n", "\n", "Il existe plusieurs manières d'importer une bibliothèque. Imaginons que l'on ait créé le fichier `test.py` dont le code est le suivant:\n", "\n", "```python\n", "print \"Hello world\"\n", "\n", "def f(x):\n", " return x ** 2\n", "\n", "def g(x):\n", " return x ** 0.5\n", "\n", "variable = 5\n", "```\n", "\n", "On suppose que le fichier `test.py` se trouve dans le répertoire courant. Voici plusieurs manières de l'importer comme une bibliothèque.\n", "\n", "| Syntaxe | Accès à `f` | Accès à `g` | Accès à `variable` |\n", "|-|-|-|-|\n", "| `import test` | `test.f` | `test.g` | `test.variable` |\n", "| `import test as t` | `t.f` | `t.g` | `t.variable` |\n", "| `from test import *` | `f` | `g` | `variable` |\n", "| `from test import g` | Impossible | `g` | Impossible |\n", "| `from test import g as h` | Impossible | `h` | Impossible |\n", "\n", "**Remarque importante**: une fois une bibliothèque chargée, toute modification de son code-source est sans effet. Il faut utiliser `reload(test)` pour forcer le rechargement. \n", "\n", "On pourra constater qu'à la différence de l'instruction `%run test.py`, la chaîne de caractères `\"Hello world\"` n'est affichée qu'au premier chargement de la bibliothèque. Il faudrait utiliser `reload(test)` pour ré-exécuter le contenu du fichier.\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import test\n", "print test.f\n", "print test.g\n", "print test.variable" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "reload(test)\n", "import test as t\n", "print t.f\n", "print t.g\n", "print t.variable" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from test import *\n", "print f\n", "print g\n", "print variable" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Remise à zéro de l'environnement (uniquement les noms de variables!)\n", "%reset -f\n", "\n", "from test import g\n", "print g\n", "print variable # Erreur" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Remise à zéro de l'environnement (uniquement les noms de variables!)\n", "%reset -f\n", "\n", "from test import g as h\n", "print h\n", "print g # Erreur" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. La bibliothèque `numpy` \n", "\n", "\n", "La bibliothèque `numpy` introduit le type `ndarray` ainsi que de nombreuses fonctions de calcul flottant notamment. Traditionnellement, on l'importe:\n", "\n", "+ soit directement dans l'environnement courant (`from numpy import *`);\n", "+ soit sous un nom abrégé (`import numpy as np`).\n", "\n", "La bibliothèque `numpy` est spécialisée dans la manipulation des tableaux (array). On l'utilisera essentiellement pour les vecteurs et les matrices\n", "\n", "• Les tableaux `numpy` ne gèrent que les objets de même type\n", "\n", "• La bibliothèque `numpy` propose un grand nombre de routines pour un accès rapide aux données (ex. recherche, extraction), pour les manipulations diverses (ex. tri), pour les calculs (ex. calcul statistique et scientifique, calcul élément par élément, calcul matriciel)\n", "\n", "• Les tableaux `numpy` sont plus performants (rapidité, gestion de la volumétrie) que les itérables usuel de Python (listes, tuples...)\n", "\n", "• Les tableaux `numpy` sont sous-jacents à de nombreux packages dédiés au calcul scientifique sous Python.\n", "\n", "• Une matrice est un tableau (array) à 2 dimensions, un vecteur est un tableau (array) avec une seule ligne\n", "\n", "• Indexation : En plus des méthodes d'accès aux éléments déjà vues pour les listes (plages d'éléments avec :) il supporte l'indexation par une liste (ou un tableau) d'entiers. On fait alors référence au tableau constitué des cases situées aux indices spécifiés. On peut aussi indexer par un tableau de bool de même taille. On fait alors référence aux emplacements où se trouve la valeur True.\n", "\n", "• Ces indexations sont en outre accessibles en écriture, soit par une seule valeur (qui est alors copiée dans toutes les cases correspondantes), soit par un tableau de valeurs de même forme.\n", "\n", "• À la différence des autres conteneurs, la plupart des opérateurs $(+, *, **, etc.)$ agissent élément par élément sur les tableaux.\n", "\n", "• Il est possible de faire des tableaux de tableaux. Lorsqu'un tableau contient des tableaux de même type et de même longueur, il devient multi-dimensionnel et supporte alors une indexation multiple (un indice par axe, séparés par des virgules).\n", "\n", "Pour plus d'infos sur cette bibliothèque : \n", "http://docs.scipy.org/doc/numpy/reference/index.html\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.1 Les vecteurs " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[5 4 3 2 1 0]\n", "\n", "6\n" ] } ], "source": [ "# Création de vecteurs : \n", "from numpy import *\n", "\n", "T1 = array([5, 4, 3, 2, 1, 0])\n", "print T1\n", "print type(T1)\n", "print len(T1)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n", "[5 3 3]\n", "[0 3 2 3 2 5]\n", "[ True True True False True False]\n", "[5 4 3 3]\n", "[-5 -4 -3 2 -3 0]\n" ] } ], "source": [ "# Indexation, accès\n", "T1 = array([5, 4, 3, 2, 3, 0])\n", "print T1[2]\n", "print T1[::2]\n", "print T1[T1]\n", "print T1>2\n", "print T1[T1 > 2]\n", "T1[T1 > 2] *= -1\n", "print T1" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4 5 6 7 8 9]\n", "[10 8 6 4 2]\n", "[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]\n", "[ 0.2 0.5 0.8 1.1]\n", "[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]\n" ] } ], "source": [ "# Création de vecteurs de valeurs particuliers : \n", "#suite arithmétique \n", "a=arange(0,10)\n", "b=arange(start=10,stop=0,step=-2)\n", "print a\n", "print b\n", "\n", "#subdivision uniforme de [a,b] de pas h ATTENTION b n'est pas inclus !!\n", "c=arange(start=0,stop=1,step=0.1)\n", "d=arange(start=0.2,stop=1.2,step=0.3)\n", "print c\n", "print d\n", "c=arange(0,1,0.1)\n", "print c" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 2.5 5. 7.5 10. ]\n" ] } ], "source": [ "# subdivision uniforme de [a,b] à n éléments \n", "# ATTENTION b EST INCLUS CETTE FOIS !!!!\n", "a=linspace(start=0,stop=10,num=5)\n", "print a\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1. 1. 1. 1. 1.]\n", "[ 3.2 3.2 3.2 3.2 3.2]\n" ] } ], "source": [ "# vecteur de 1...\n", "a=ones(5)\n", "print a\n", "b=full(5,3.2)\n", "print b" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[5 4 3 2 3 0]\n", "[4 3]\n", "[4 2]\n", "[5 4 3]\n", "[3 2 3 0]\n", "0\n", "2\n", "[5 3 3]\n", "[0 3 2 3 2 5]\n", "[5 4 3 3]\n", "[-5 -4 -3 2 -3 0]\n", "[-5 -4 1 2 -3 0]\n" ] } ], "source": [ "# Indexation\n", "T1 = array([5, 4, 3, 2, 3, 0])\n", "print T1 \n", "# de 1 à 3\n", "print(T1[1:3])\n", "# de 1 à 5 de 2 en 2 (pas négatif possible), 5 est exclu\n", "print(T1[1:5:2])\n", "# début jusqu'à 3 \n", "print(T1[:3])\n", "# de 2 à la fin \n", "print(T1[2:])\n", "# dernier élément\n", "print(T1[-1])\n", "#3 derniers éléments \n", "print(T1[-3])\n", "# deux en deux \n", "print T1[::2]\n", "# indexation par un vecteur d'entiers \n", "print T1[T1]\n", "# indexation par un booléen \n", "print T1[T1 > 2]\n", "# On peut modifier les éléments :\n", "T1[T1 > 2] *= -1\n", "print T1\n", "T1[2]=1\n", "print T1\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 2 3 4]\n", "[2 3]\n", "[5 3]\n", "[1 5 3 4]\n" ] } ], "source": [ "# ATTENTION Duplication !!!\n", "t1 = array([1, 2, 3, 4])\n", "t2 = t1[1:3] # Pas de duplication, toute modification de t2 aura un effet sur t1\n", "print t1\n", "print t2\n", "t2[0] = 5\n", "print t2\n", "print t1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Comment dupliquer comme il faut ! \n", "t1 = array([1, 2, 3, 4])\n", "t2 = array(t1[1:3]) # Duplication\n", "print t1\n", "print t2\n", "t2[0] = 5\n", "print t2\n", "print t1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.2 Les matrices \n", "\n", "Pour fabriquer des matrices avec `numpy`, on fait un tableau de tableaux" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 1]\n", " [2 3]\n", " [4 5]]\n", "\n", "3\n", "[0 1]\n", "5\n", "[[2 3]\n", " [4 5]]\n", "[[2]\n", " [4]]\n", "3\n" ] } ], "source": [ "T2 = array([[0, 1], # Il est possible de passer à la ligne avant de fermer des crochets ou parenthèses\n", " [2, 3], # ça permet de rendre le code plus lisible (ici une liste de listes)\n", " [4, 5]])\n", "T2 = array([[0, 1],[2, 3],[4,5]])\n", "print T2\n", "print type(T2)\n", "print len(T2)\n", "print T2[0]\n", "print T2[2, 1]\n", "print T2[1:, :]\n", "print T2[1:,:1]\n", "# demander la taille de la matrice\n", "(n,m)=T2.shape\n", "print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.3 Opérations sur les matrices et les vecteurs \n", "\n", "Voici une liste non exhaustive des champs et méthodes du type `ndarray`.\n", "\n", "| Champ ou méthode | Usage |\n", "|-|-|\n", "| `T` | Transposée (pour les tableaux à deux dimensions) |\n", "| `astype(t)` | Renvoie une copie du tableau dont les cases ont été converties dans le type `t` |\n", "| `copy()` | Renvoie une copie du tableau |\n", "| `dtype` | Type (commun) des éléments du tableau |\n", "| `fill(value)` | Remplit toutes les cases avec une valeur |\n", "| `flatten()` | Renvoie une copie du tableau réarrangé sur une seule dimension |\n", "| `ndim` | Nombre de dimensions du tableau |\n", "| `shape` | La liste des tailles du tableau selon chaque dimension |\n", "| `size` | Le nombre total d'éléments du tableau |\n", "| `tofile(filename)` | Enregistre le tableau dans un fichier |" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(3, 3)\n", "2\n", "float64\n", "[[ 0. 3. 6.]\n", " [ 1. 4. 7.]\n", " [ 2. 5. 8.]]\n" ] } ], "source": [ "T2 = array([[0, 1, 2],\n", " [3, 4, 5],\n", " [6, 7,8]], float)\n", "print T2.shape\n", "print T2.ndim\n", "print T2.dtype\n", "print T2.T\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.4 Fonctions introduites par numpy\n", "\n", "La bibliothèque `numpy` introduit ou redéfinit un grand nombre de fonctions numériques. Celles-ci peuvent agir sur des valeurs numériques individuelles, ou sur des tableaux (ou listes) élément par élément. En voici quelques-unes.\n", "\n", "| Fonction | Usage |\n", "|-|-|\n", "| `numpy.abs` `conj` `real` `imag` `angle` | Module, conjugué, partie réelle, partie imaginaire, argument |\n", "| `cos` `sin` `tan` `sinh` `cosh` `tanh` | |\n", "| `arccos` `arcsin` `arctan` `arcsinh` `arccosh` `arctanh` | |\n", "| `exp` `log` | |\n", "| `numpy.round` `floor` `ceil` | Arrondi au plus proche, arrondi inférieur, arrondi supérieur |\n", "\n", "Elle introduit également de nombreuses fonctions spécifiques aux tableaux. En voici une petite liste.\n", "\n", "| Fonction | Usage |\n", "|-|-|\n", "| `sum` `prod` | Somme et produit des éléments |\n", "| `numpy.min` `numpy.max` `mean` `median` `std` | Minimum, maximum, moyenne, médiane, écart-type |\n", "| `cumprod` `cumsum` | Produit ou somme cumulés |\n", "| `argmin` `argmax` `argsort` | Indice du minimum, du maximum, tableau d'indices permettant de trier le tableau |\n", "| `convolve` | Convolution discrète |\n", "\n", "Mentionnons encore quelques constantes utiles: `pi`, `e`, `inf`, `nan`, etc.\n", "\n", "\n", "**Attention**: importer `numpy` dans l'espace de base sans préfixe (`from numpy import *`) ne remplace pas les fonctions prédéfinies de Python (`min`, `max`, `abs`...). On devra donc les préfixer si on souhaite utiliser la version `numpy`. Cela n'a en général pas d'importance, sauf pour `min`, `max` et `round`.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy\n", "from numpy import *\n", "\n", "t = array([[1, 2, 3, 4],[2,3,1,5]])\n", "#print max(t)\n", "print numpy.max(t)\n", "print t.max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remarque: certaines des fonctions qui agissent sur les tableaux prennent un paramètre supplémentaire optionnel axis pour indiquer dans quelle dimension effectuer le calcul." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t = array([[1, 2], [3, 4]])\n", "print t.max(axis = 0)\n", "print t.max(axis = 1)\n", "print t.max(axis = None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La bibliothèque `numpy` fournit aussi des fonctions pour créer et gérer facilement des tableaux à plusieurs dimensions.\n", "\n", "| Fonction | Usage |\n", "|-|-|\n", "| `arange(start=0, stop, step=1)` | Similaire à `range`, mais renvoie un tableau et les arguments peuvent être de type flottant |\n", "| `linspace(start, stop, n=50)` | Renvoie un tableau à `n` valeurs uniformément réparties entre `start` et `stop` (bornes incluses) |\n", "| `array(c)` | Crée un tableau à partir du conteneur `c`. Le type des éléments peut aussi être choisi. |\n", "| `zeros(shape)` `ones(shape)` | Crée un tableau de la forme désirée, rempli de zéros ou de uns. Le type des éléments peut aussi être choisi. |\n", "| `identity(n)` | Crée une matrice identité de taille $n\\times n$ |\n", "| `diag(A)` | Diagonale d'une matrice (si `A` est bidimensionnel) ou matrice diagonale (si `A` est monodimensionnel) |\n", "| `dot(A, B)` | Produit matriciel |\n", "| `reshape(T, shape)` | Renvoie le tableau obtenu en réarrangeant le tableau selon une nouvelle forme |\n", "| `concatenate(l)` | \"Concatène\" une liste de tableaux entre eux |\n", "| `roll(a, shift)` | Effectue une permutation circulaire des éléments d'un tableau en décalant les éléments vers la droite (les derniers reviennent à gauche) |\n", "| `meshgrid(range(m), range(n))` | Renvoie deux matrices $m\\times n$, la première contenant les indices des lignes, la seconde ceux des colonnes. Utile pour créer une matrice à partir de son terme général |\n", "| `fromfunction(f, shape)` | Crée un tableau à partir d'une fonction |\n", "| `fromfile(filename, dtype)` | Création depuis un fichier. L'inconvénient par rapport à `tofile` est qu'il faut préciser le type des éléments (`dtype`) et la forme est perdue (le tableau obtenu n'aura qu'une seule dimension, comme s'il avait subi `flatten()`) |" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 0]\n", " [0 1]]\n", "[[1 2]\n", " [3 4]]\n", "[[1 0]\n", " [0 4]]\n", "[[1 2]\n", " [3 4]]\n" ] } ], "source": [ "A = identity(2, int)\n", "B = array([[1, 2], [3, 4]])\n", "print A\n", "print B\n", "print A * B\n", "print dot(A, B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.5 Fonctions introduites par `numpy.linalg`\n", "\n", "| Fonction | Usage |\n", "|-|-|\n", "| `dot(A, B)` | Produit matriciel |\n", "| `matrix_power(M, n)` | Exposant matriciel |\n", "| `norm(x)` | Norme (euclidienne par défaut) d'un vecteur |\n", "| `det(A)` `tr(A)` | Déterminant et trace |\n", "| `eig(A)` `eigvals(A)` | Vecteurs et valeurs propres |\n", "| `matrix_rank(A)` | Rang d'une matrice |\n", "| `solve(A, b)` | Résolution du système linéaire $Ax=b$ |\n", "| `inv(A)` | Inversion matricielle |\n", "| `cholesky(A)` | Décomposition de Cholesky |\n", "| `qr(A)` | Décomposition QR |\n", "\n", "D'autres fonctions sont décrites sur http://docs.scipy.org/doc/numpy/reference/routines.linalg.html." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy.linalg import *\n", "\n", "A = array([[2, 3, 5, 7],\n", " [11, 13, 17, 19],\n", " [23, 29, 31, 37],\n", " [41, 43, 47, 53]])\n", "\n", "print det(A), trace(A)\n", "eigenvalues, eigenvectors = eig(A)\n", "print eigenvalues\n", "print eigenvectors\n", "# On calcule inv(P).A.P\n", "print numpy.round(dot(dot(inv(eigenvectors), A), eigenvectors), 10)\n", "v = solve(A, [1, 2, 3, 4])\n", "print dot(A, v)\n", "print v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. La bibliothèque `Matplotlib.pyplot`\n", "\n", "La bibliothèque `matplotlib` (et sa sous-bibliothèque pyplot) sert essentiellement à afficher des graphismes. Son utilisation ressemble beaucoup à celle de Matlab. Traditionnellement, on l'importe:\n", "\n", "+ soit directement dans l'environnement courant (`from matplotlib.pyplot import *`);\n", "+ soit sous un nom abrégé (`import matplotlib.pyplot as plt`).\n", "\n", "Dans ce qui suit, on suppose qu'on utilise le backend `inline`, propre aux notebooks. Si on utilise un autre backend, il pourra être nécessaire d'ajouter `show()` à la fin des commandes pour faire apparaitre la fenêtre qui contient le dessin.\n", "\n", "Voici une courte liste de commandes possibles.\n", "\n", "| Commande | Effet |\n", "|-|-|\n", "| plot(y) | Affiche les points dont les ordonnées sont dans `y` |\n", "| plot(x, y) | Affiche les points de coordonnées $(x_k,y_k)$ |\n", "| matshow(a) | Affiche une matrice |\n", "| imshow(a) | Idem, mais avec plus d'options (et la possibilité de faire des sous-figures) |\n", "| hist(y, bins=10) | Affiche un histogramme de la répartition des valeurs des $y_k$. On peut choisir le nombre de barres, voire leurs bornes |\n", "| figure() | Commence une nouvelle figure (si on ne l'a pas fait, cette fonction est appelée implicitement dès qu'on commence à afficher quelque chose) |\n", "| figure(figsize=(a,b)) | Idem, mais permet d'imposer une taille (en pouces) à la figure |\n", "| subplot(lines, columns, index) | Indique qu'on va commencer une sous-figure |\n", "| suptitle(\"titre\") | Afficher un titre au-dessus de la figure. Attention aux caractères accentués (précéder la chaîne du préfixe `u`). Il est possible de mettre du LaTeX entre dollars `$` |\n", "| legend() | Afficher les légendes (s'il y en a) |\n", "| axis([xmin, xmax, ymin, ymax]) | Définit explicitement la taille des axes. Par défaut, ceux-ci s'adaptent automatiquement à la taille du contenu de la figure |\n", "| axis(\"scaled\") | Indique que le repère doit être orthonormé (pas de distorsion à l'affichage). À utiliser **après** `plot(...)` car son utilisation désactive l'ajustement automatique des axes |\n", "| axis(\"off\") | Ne pas afficher les axes |\n", "| loglog() | Passer en échelle log-log |\n", "\n", "La fonction `plot` (la plus utilisée) peut prendre une grande variété de paramètres supplémentaires pour contrôler l'aspect des courbes tracées. Par défaut, les points sont reliés par des segments. Voici quelques paramètres optionnels possibles:\n", "\n", "- `linestyle=s`, avec `s` qui vaut par exemple\n", " - `\"solid\"` ou `\"-\"` (lignes pleines),\n", " - `\"dashed\"` ou `\"--\"` (tirets),\n", " - `\"dotted\"` ou `\":\"` (pointillés),\n", " - `\"\"` (pas de lignes);\n", "- `color=c`, avec `c` qui vaut par exemple `\"red\"`, `\"green\"`, `\"blue\"` etc.\n", "- `marker=m`, avec `m` qui vaut par exemple\n", " - `\"\"` (pas de marqueur);\n", " - `\",\"` (petits points),\n", " - `\".\"` (gros points),\n", " - `\"+\"` ou `\"x\"` (croix),\n", " - `\"*\"` (étoiles),\n", " - `\"o\"` (cercles),\n", " - `\"s\"` (carrés);\n", "- `markersize=s` pour contrôler la taille des marqueurs;\n", "- `legend=l` où `l` est une chaîne de caractères pour donner un titre à la courbe. Celui-ci n'apparaitra que si l'on utilise `legend()` par la suite. Mêmes remarques que pour `suptitle`.\n", "\n", "On peut aussi utiliser l'écriture `plot(x, y, \"style\")` où `style` est donné sous forme abrégée, par exemple:\n", "\n", "- `\"y-x\"` pour des croix reliées par des lignes jaunes;\n", "- `\"g:*\"` pour des étoiles reliées par des pointillés verts;\n", "- `\"bo\"` pour des cercles bleus sans lignes;\n", "- `\"c-\"` pour des lignes cyans sans marqueur.\n", "\n", "Une vaste liste de fonctions supplémentaires et d'exemples illustrés peut se trouver à la page http://matplotlib.org/index.html" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot([0,1,-1,2,-2,3,-3])\n", "plt.show() # Il peut être nécessaire d'appeler cette fonction pour faire apparaitre le dessin" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n80Kq9/qcBMU8QTG78dnIz8fXtq68xMx5uyOWUhtz86ynWeqeVJkW8+dza8sEyzDMnEsHHVRMby1f\nHnsl1aQyb97paZaUuvFhyM/n1tauXGLmvI27PkdpW9SSXTGPnY2Pg/x8tDZm5bN1OWpJ/V6fk6CY\nR/LKK9JVV6Xbjc9Gfj5cm7vyUpdnznPIy0tty82zyMw3bpQ++tHi7ZSy8XGQn+/Q5qx8ti6ec97m\nXZ+jpJCbdyIzH+zGTzkl/W58GPLzHXLoyktdnDlv867PUdoUtbS2mJfZ+He+k242Pg7y80IOWfmg\nLs6c5xSxlCjmNcqhG5+N/DyvrrzUpRdCc9j1OUybcvNWZeZtzsbH0dX8PKesfFCXZs7bdq/PScTO\nzbPKzHPsxofpan6eY1cudWvmPMeIpdSWqCX5Yp5LNj6OLubnuWXls3UlamnbvT4nQTGvqCvd+Gxd\ny89z7cpLXZg5z2nX5zBtyc2TLOZd6saH6cr557l35VI3zjnPadfnMG053zyp//xd7caH6UJ+nntX\nXsp95jznvLzUhqglmWmW3CdVppHz/UNznWAZZfny4h6hxx8feyVh5bjrc5iY9wVtzTQL3fhoOefn\nXenKS7m+EJrjrs9h2pCbR+3M6cbHk9v8ede6cinfmfPTTy+K+XnnxV5J/WLNmzfamZvZiWb2hJlt\nMLNPz/d4uvHJ5Jafd60rl/KcOc911+coqefmlYu5me0i6WpJJ0g6VNJpZnbQqMd3fVJlGjnNn3dh\ngmWU3KKWHO71OYnsi7mkd0na6O6b3H2bpFskfWjYA+nGp5dLft7FrryU28x5F6ZYBqWem4co5vtI\nemrg/c39j70G3Xg1bZ8/73JXLuU3c57zrs9hUp83X9jkkx1zzGqtWVO83ev11Ov1mnz6LFxySVHU\nL720eGG0TbrclZfOOks66STpi19s94vZue/6HKWMWup8EXRmZkYzU+Q5ladZzOzdkla7+4n99y+W\n5O7+97MeV9udhrqmjfPnXZxgGSWHmfMvf1l64gnpmmtir6RZMebNm5xmeVDS28xsPzN7vaRTJf0g\nwHUxQhvzc7ryHXJ4IbRreXkp5dw8yJy5mZ0o6Ssqvjlc6+5/N+QxdOaBtWX+nK58Z22fOe/Krs9R\nmp43b3TO3N3vdPcD3f3twwo56tGW+XO68p21fea8K7s+R0l1RJGZkhZrw/x51ydYRmlz1NLViKWU\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline \n", "# permet d'importer numpy et matplotlib.pyplot\n", "\n", "plot([0,1,-1,2,-2,3,-3])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "# Représentation d'une suite\n", "\n", "n = arange(50)\n", "u = (-1) ** n * exp(-n / 20.)\n", "plot(u, \"r+\")" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nIAjzwhGa+D4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Représentation d'un graphe de fonction\n", "\n", "x = linspace(-5 * pi, 5 * pi, 200)\n", "y = sin(x) / x\n", "plot(x, y, \"g\", label='$\\\\frac{\\\\sin x}{x}$') # Ici il faut échapper le caractère \\\n", "legend()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Représentation d'une courbe paramétrée\n", "\n", "t = linspace(0, 2 * pi, 500)\n", "x = cos(t)\n", "y = sin(t) + sqrt(abs(cos(t)))\n", "plot(x, y)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Echelle logarithmique\n", "\n", "figure(figsize=(13,5))\n", "\n", "t = linspace(0, 2, 100)\n", "x = 2 ** t\n", "y = 1 / x ** 3\n", "\n", "subplot(1, 2, 1)\n", "title('Echelle lineaire') # Pour les chaîne avec caractères accentués, mettre un préfixe u avant le guillemets\n", "plot(x, y)\n", "\n", "subplot(1, 2, 2)\n", "title('Echelle logaritmique')\n", "loglog()\n", "plot(x, y)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }