Chapitre Tracé de fonctions avec Python

Documents pareils
Cours 7 : Utilisation de modules sous python

Aide - mémoire gnuplot 4.0

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Python - introduction à la programmation et calcul scientifique

Annexe commune aux séries ES, L et S : boîtes et quantiles

Indications pour une progression au CM1 et au CM2

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

Calcul Formel et Numérique, Partie I

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

Plus petit, plus grand, ranger et comparer

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Introduction à MATLAB R

3.2. Matlab/Simulink Généralités

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Du bon usage de gnuplot

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Création d un fichier de découpe

Chap17 - CORRECTİON DES EXERCİCES

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Correction ex feuille Etoiles-Spectres.

Formats d images. 1 Introduction

Infolettre #18 : Les graphiques avec Excel 2010

Premiers pas avec Mathematica

Calcul Formel et Numérique, Partie I

TP 1. Prise en main du langage Python

Fluctuation d une fréquence selon les échantillons - Probabilités

NAVIGATION SUR INTERNET EXPLORER

Introduction à la présentation graphique avec xmgrace


Parcours FOAD Formation EXCEL 2010

Note de cours. Introduction à Excel 2007

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

ou clic objet. R rouge B bleu : 65 Le fond votre travail en P :. d étoiles dupliquer. Esbly Page 1 / 5

Optimisation, traitement d image et éclipse de Soleil

Découverte de Python

VOS PREMIERS PAS AVEC TRACENPOCHE

STATISTIQUES A DEUX VARIABLES

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

SEMIN- Gestion des couleurs sous R. Michel BAYLAC. MNHN Département Systématique et Evolution OSEB

TP 0 : INTRODUCTION À MATLAB

EXERCICES DE REVISIONS MATHEMATIQUES CM2

Structurer ses données : les tableaux. Introduction à la programmation

GUIDE D UTILISATION DE L ISU SEPTEMBRE 2013 GUIDE D UTILISATION DU NAVIGATEUR UIS.STAT (VERSION BÊTA)

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Aide-mémoire de statistique appliquée à la biologie

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Electricité : caractéristiques et point de fonctionnement d un circuit

COURS AUTOCAD. Création et utilisation des blocs. b leclerc. ERP Jean Moulin METZ

Jean Dubuffet AUTOPORTRAIT II

Chapitre 0 Introduction à la cinématique

L informatique en BCPST

Réalisation de cartes vectorielles avec Word

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Séance 0 : Linux + Octave : le compromis idéal

Inspiration 7.5. Brève description d Inspiration. Avantages d Inspiration. Inconvénients d Inspiration

BC LABEL Location de bornes photos numériques

Explications des items d'obii pour la validation du B2I

Introduction au pricing d option en finance

Traceur de courbes planes

Exercices de dénombrement

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Trois personnes mangent dans un restaurant. Le serveur

Utilisation de la Plateforme Office365 et d Oultlook Web App

STAGE IREM 0- Premiers pas en Python

1 Description générale de VISFIELD

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Chapitre 6. Fonction réelle d une variable réelle

données en connaissance et en actions?

Logiciel. Table de matières I Environnement requis...2

Découverte du tableur CellSheet

enquête pour les fautes sur le fond, ce qui est graves pour une encyclopédie.

Lire ; Compter ; Tester... avec R

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

Traitement bas-niveau

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Cours 1 : La compilation

LES TYPES DE DONNÉES DU LANGAGE PASCAL

MYXTRACTION La Business Intelligence en temps réel

COMMUNAUTE ECONOMIQUE ET MONETAIRE DE L AFRIQUE CENTRALE LA COMMISSION

Rappel sur les bases de données

Traitement numérique de l'image. Raphaël Isdant

Petit guide d utilisation Prezi

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

La Clé informatique. Formation Excel XP Aide-mémoire

Les devoirs en Première STMG

Transcription:

Chapitre 100 2 Tracé de fonctions avec Python 7 février 2017 1 Utilisation de bibliothèques En python, il existe de nombreuses manières de produire des graphiques. Pour ce faire, nous allons utiliser la bibliothèque matplotlib.pyplot. Une bibliothèque est un regroupement de fonctions, livrées directement avec Python ou écrites par un tiers. Nous allons en utiliser plusieurs cette année : math, pour utiliser des fonctions mathématiques de base ; random, pour simuler des expériences aléatoires ; time, pour disposer d un chronomètre ; scipy.optimize, pour résoudre certains problèmes numériques ; scipy.integrate pour résoudre d autres problèmes numériques ; numpy, pour utiliser des outils de calcul vectoriel ; et donc matplotlib.pyplot, pour avoir des outils de tracé graphique. Certaines de ces bibliothèques sont toujours disponibles avec Python, comme les bibliothèques math et random, elles font partie de la bibliothèque standard. D autres doivent être installées séparément, comme la bibliothèque matplotlib.pyplot, notamment. On charge une bibliothèque avec le mot clef import. Il existe plusieurs manières de charger une bibliothèque. Prenons l exemple de la bibliothèque math. On peut d abord charger l intégralité de la bibliothèque. Exemple 1.0.1. >>> import math >>> math.sqrt(2) 1.4142135623730951 Remarquez qu il est alors obligatoire de rappeler de quelle bibliothèque vient chaque commande (plusieurs bibliothèques peuvent proposer des implémentations différentes d une même fonction). 1

Exemple 1.0.2. La fonction exp du module math ne s applique qu à des nombres flottants, alors que celle de numpy peut s appliquer à des vecteurs (cette structure sera détaillée ultérieurement). >>> import math, numpy >>> math.exp(1) 2.718281828459045 >>> numpy.exp(1) 2.7182818284590451 >>> numpy.exp([1,2,3]) array([ 2.71828183, 7.3890561, 20.08553692]) On peut donner un alias à une bibliothèque avec le mot clef as, afin de pouvoir l utiliser rapidement. Exemple 1.0.3. >>> import math as m >>> m.pi 3.141592653589793 On peut aussi décider de n importer que certaines fonctions d une bibliothèque, avec le mot clef from. Dans ce cas, on peut utiliser la fonction importée sans préfixe. Exemple 1.0.4. >>> from math import log >>> log(2) 0.6931471805599453 On peut aussi importer toutes les fonctions d un coup de cette manière, en utilisant le joker *. Exemple 1.0.5. >>> from math import * >>> tan(pi/4) 0.9999999999999999 2 Matplotlib.pyplot La bibliothèque matplotlib.pyplot fournit des outils de tracés graphiques très proches de ceux du logiciel Matlab. On essaira toujours de l utiliser de la manière suivante. 1. Appeler la fonction clf() (pour clean figure) pour effacer la figure précédente, et donc en commencer une nouvelle. 2

2. Tracer des courbes, nuages de points, en appelant (éventuellement plusieurs fois) la fonction plot(). On remarquera que rien n est ici affiché : seul un objet est créé par Python. 3. Éventuellement, paramétrer le graphique (axes, titre, légendes etc.) en utilisant les fonctions adéquates. 4. Afficher le graphique avec la fonction show() ou, mieux, le sauvegarder avec la fonction savefig(). On dispose alors d une image (différents formats possibles). 3 Utilisation de la fonction plot Cette fonction peut-être utilisée de nombreuses manières différentes, pour obtenir des résultats assez fins. Nous ne les détaillerons pas toutes ici. L idée générale est de lui donner en argument deux tableaux de nombres, décrivant respectivement les abscisses et les ordonnées des points à tracer. Sans autre option, ces points sont reliés par des segments bleus, en traits pleins. Exemple 3.0.6. Le code suivant produit la figure 1. import matplotlib.pyplot as plt x = [1, 3, 4, 2] y = [2, 1, 4, 2] plt.plot(x,y) plt.savefig("ex_base_01.png") Les options graphiques permettent notamment de modifier le type de segment (pointillés, sans segment), d afficher ou non un marqueur au niveau de chaque point et de changer la couleur de ces objets. Exemple 3.0.7. Le code suivant produit la figure 2. import matplotlib.pyplot as plt x = [1, 3, 4, 2] y = [2, 1, 4, 2] plt.plot(x,y, or-- ) plt.savefig("ex_base_02.png") On remarquera que cette figure aurait aussi pu être obtenue par la commande suivante, plus explicite mais moins concise. 3

FIGURE 1 Style standard FIGURE 2 Points marqués, ligne coupée, couleur rouge. plt.plot(x,y,marker= o,color= r,linestyle= -- ) On peut enfin appeler plusieurs fois la fonction plot successivement. Les tracés sont alors superposés. Exemple 3.0.8. Le code suivant produit la figure 3. 4

import matplotlib.pyplot as plt x = [1.5, 3, 3.5, 2] y = [3, 2, 4, 2] plt.plot(x,y, or ) plt.plot([1,4],[1,4]) plt.savefig("ex_base_03.png") FIGURE 3 Supperposition de deux tracés Remarque 3.0.9. Il n est pas réellement possible de tracer des courbes lisses, mais seulement des lignes brisées et des nuages de points. 4 Quelques options graphiques disponibles La fonction plot() possède énormément d options, nous n en détaillerons que quelques-unes ici. On suppose dans cette partie que la bibliothèque matplotlib.pyplot a été importée avec l alias plt. 4.1 Couleurs (option color) On peut décrire de nombreuses couleurs très précisément, mais certaines sont disponibles avec les raccourcis suivants. L argument donné est une chaîne de caractères et la couleur par défaut est le bleu. 5

Mot clef b g r c m y k w Couleur Bleu Vert Rouge Cyan Magenta Jaune Noir Blanc TABLE 1 Couleurs prédéfinies dans matplotlib. Exemple 4.1.1. Pour tracer une courbe en magenta, on écrira la commande suivante. plt.plot(x,y,color = m ) 4.2 Étiquette (option label) On peut adjoindre à un tracé une chaîne de caractères (son étiquette), qui pourra notamment être utilisée dans les légendes. Les parties entres deux symboles $ sont interprétées comme du code Latex (attention, en Python, le caractère \ se code par le caractère \\ ). Par défaut, il n y a pas d étiquette. Exemple 4.2.1. Pour donner le nom «arccos(t)» à la courbe, on écrira la commande suivante. plt.plot(x,y,label = $\\arccos(t)$ ) 4.3 Type de ligne (option linestyle) On peut spécifier plusieurs types de lignes, qui seront utilisés pour tracer les segments reliant les points donnés en argument. L argument donné est une chaîne de caractères et, par défaut, la ligne est tracée continuement. Mot clef Type de ligne - Ligne continue Tirets -. Alterne tirets et points : Ligne pointillée None ou ou Pas de ligne TABLE 2 Types de ligne disponibles. 6

Exemple 4.3.1. Pour tracer une courbe en pointillés, on écrira la commande suivante. plt.plot(x,y,linestyle = : ) 4.4 Épaisseur des lignes (option linewidth) On peut régler l épaisseur des lignes reliant les points. L argument donné est un flottant, qui vaut 1 par défaut. Exemple 4.4.1. Pour tracer une courbe dont le trait est deux fois plus épais que la normale, on écrira la commande suivante. plt.plot(x,y,linewidth = 2) 4.5 Type de point (option marker) On peut changer la manière dont les points sont représentés. L argument donné est une chaîne de caractères et, par défaut, les points ne sont pas représentés. Remarque 4.5.1. La liste donnée dans la table 3 est loin d être exhaustive. Mot clef Type de point. Point o Cercle s Carré * Étoile + Croix (forme +) x Croix (forme ) None ou ou Pas de point $...$ Texte Latex (à la place de...) TABLE 3 Quelques types de points disponibles. Exemple 4.5.2. Pour placer des étoiles à l emplacement des points indiqués, on écrira la commande suivante. plt.plot(x,y,marker = s ) Remarque 4.5.3. Les options markeredgecolor, markeredgwidth, markerfacecolor et markersize permettent de paramétrer plus finement l apparence des points. 5 Autres fonctions utiles Nous avons déjà vu comment utiliser de manière élémentaire les fonctions clf(), plot() et savefig(). 7

5.1 Paramètres avancés d un graphique On peut affecter une étiquette à chaque axe avec les fonctions xlabel() et ylabel(). Les fonctions xlim() et ylim() permettent de régler manuellement les étendues des deux axes, et donc la forme du graphique. On pourra utiliser à la place la fonction axis(). On pourra aussi utiliser la fonction autoscale(). Les fonctions xticks() et yticks() permettent de régler les graduations des axes. La fonction figtext() permet d écrire du texte dans une figure. La fonction legend() permet d ajouter une légende à une figure, la fonction title() permet d ajouter un titre à une figure. 5.2 Quelques outils utiles en statistiques Cette partie ne sera pas utilisée en informatique, mais pourra vous intéresser dans le cadre de votre TIPE, notamment. Les fonctions barh() et hist() permettent de réaliser des histogrammes, la fonction boxplot() permet de réaliser des diagrammes en boîtes à moustaches. La fonction errorbar() permet de tracer un graphe avec des barres d erreurs (intervalles de confiances). 5.3 Subdivision régulière d un intervalle Pour tracer une fonction, on trace en fait des cordes de cette fonction, à partir d une subdivision de l intervalle considéré. La fonction linespace() de la bibliothèque numpy permet de créer automatiquement de telles subdivisions, avec un nombre de points à régler manuellement. Exemple 5.3.1. Pour tracer le graphe de la fonction x x 3 sur [0, 1] avec une subdivision en 3 segments, donc en utilisant 4 points, on peut utiliser le code suivant, qui donne la figure 4. import matplotlib.pyplot as plt from numpy import linspace x = linspace(0,1,4) y = [t**3 for t in x] plt.plot(x,y) plt.xlabel( $t$ ) plt.ylabel( $t^3$ ) plt.savefig( ex_numpy_01.png ) Pour obtenir une courbe plus lisse, on peut utiliser une subdivision plus fine. Par exemple, avec 100 segments, et donc 101 points, on peut utiliser le code suivant, qui donne la figure 5. 8

FIGURE 4 Subdivision en 3 segments import matplotlib.pyplot as plt from numpy import linspace x = linspace(0,1,101) y = [t**3 for t in x] plt.plot(x,y) plt.xlabel( $t$ ) plt.ylabel( $t^3$ ) plt.savefig( ex_numpy_01.png ) 6 Exemple avancé Le code suivant permet de tracer les graphes des fonction arccos et arcsin, dans la figure 6. import matplotlib.pyplot as plt import math as m from numpy import linspace x1 = linspace(-1,1,200) x2 = linspace(0,m.pi,200) arccos = [m.acos(t) for t in x1] 9

FIGURE 5 Subdivision en 100 segments cos = [m.cos(t) for t in x2] plt.plot(x1,arccos,color= b,label= $\\arccos(t)$, linewidth=2) plt.plot(x2,cos,color= r,label= $\\cos(t)$, linewidth=2) plt.plot([-0.5*m.pi,m.pi],[-0.5*m.pi,m.pi],color = g, linestyle = --, label = Première bissectrice du plan ) plt.xlabel( $t$ ) plt.legend(loc=0) plt.axes() plt.savefig( ex_avance.png ) 10

FIGURE 6 Graphes des fonctions arccos et cos 11