0% ont trouvé ce document utile (0 vote)
0 vues4 pages

Python Plot

Ce document présente des fonctions Python pour réaliser des tracés en 2D et 3D en utilisant les modules numpy et matplotlib. Il décrit comment tracer des lignes brisées, des fonctions, des arcs paramétrés, des surfaces et des courbes de niveau, en fournissant des exemples de code pour chaque type de tracé. Les fonctionnalités incluent la personnalisation des couleurs, des styles de lignes et des marqueurs, ainsi que l'utilisation de fonctions vectorisées pour une meilleure efficacité.

Transféré par

dratoxyt
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues4 pages

Python Plot

Ce document présente des fonctions Python pour réaliser des tracés en 2D et 3D en utilisant les modules numpy et matplotlib. Il décrit comment tracer des lignes brisées, des fonctions, des arcs paramétrés, des surfaces et des courbes de niveau, en fournissant des exemples de code pour chaque type de tracé. Les fonctionnalités incluent la personnalisation des couleurs, des styles de lignes et des marqueurs, ainsi que l'utilisation de fonctions vectorisées pour une meilleure efficacité.

Transféré par

dratoxyt
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Python

Oral
MP, PC, PSI, TSI
Réalisation de tracés
Les fonctions présentées dans ce document permettent la réalisation de tracés. Elles nécessitent l’import du
module numpy et du module [Link]. De plus pour effectuer des tracés en dimension 3, il convient
d’importer la fonction Axes3d du module mpl_toolkits.mplot3d. Les instructions nécessaires aux exemples
qui suivent sont listés ci-dessous.

import math
import [Link] as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

Tracés de lignes brisées et options de tracés


On donne la liste des abscisses et la liste des ordonnées puis on effectue le tracé. La fonction axis permet de
définir la fenêtre dans laquelle est contenue le graphique. L’option equal permet d’obtenir les mêmes échelles
sur les deux axes. Les tracés relatifs à divers emplois de la fonction plot se superposent. La fonction [Link]()
efface les tracés contenus dans la fenêtre graphique.

x = [1., 2.5, 4.]


y = [3., 1., 5.]
[Link]('equal')
[Link](x, y)
[Link]([-1., 5., -1., 6.])
[Link]()
[Link]()

La fonction plot admet de nombreuses options de présentation. Le paramètre color permet de choisir la couleur
('g' : vert, 'r' : rouge, 'b' : bleu). Pour définir le style de la ligne, on utilise linestyle ('-' : ligne continue,
'- -' : ligne discontinue, ' :' : ligne pointillée). Si on veut marquer les points des listes, on utilise le paramètre
marker ('+', '.', 'o', 'v' donnent différents symboles).

x = [1., 2.5, 4.]


y = [3., 1., 5.]
[Link]([-1., 5., -1., 6.])
[Link](x, y, color='r', linestyle=' :',
marker='o')
[Link]()

15 mai 2017 09:43 Python-plot-1


Tracés de fonction
On définit une liste d’abscisses puis on construit la liste des ordonnées correspondantes. L’exemple ci-dessous
trace 𝑥 ↦ sin 𝑥 sur [0, 3𝜋].

def f(x) :
return [Link](x)

X = [Link](0, 3*[Link], 0.01)


Y = [ f(x) for x in X ]
[Link](X, Y)
[Link]()

Il est généralement plus intéressant d’utiliser les fonctions du module numpy, plutôt que celles du module math,
car elles permettent de travailler aussi bien avec des scalaires qu’avec des tableaux (on les appelle fonctions
vectorisées et universal function ou ufunc dans la documentation officielle de Python).

def f(x) :
return [Link](x)

X = [Link](0, 3*[Link], 0.01)


Y = f(X)
[Link](X, Y)
[Link]()

Une autre solution consiste à utiliser la fonction vectorize du module numpy qui permet de transformer une
fonction scalaire en une fonction capable de travailler avec des tableaux. Il est cependant beaucoup plus efficace
d’utiliser directement des fonctions vectorisées.

def f(x) :
return [Link](x)

f = [Link](f)

Il est à noter que les opérateurs python (+, -, *, etc.) peuvent s’appliquer à des tableaux, ils agissent alors terme
à terme. Ainsi la fonction f définie ci-dessous est une fonction vectorisée, elle peut travailler aussi bien avec
deux scalaires qu’avec deux tableaux et même avec un scalaire et un tableau.

def f(x, y) :
return [Link](x**2 + y**2)

>>> f(3, 4)
5.0
>>> f([Link]([1, 2, 3]), [Link]([4, 5, 6]))
array([ 4.12310563, 5.38516481, 6.70820393])
>>> f([Link]([1, 2, 3]), 4)
array([ 4.12310563, 4.47213595, 5. ])

15 mai 2017 09:43 Python-plot-2


Tracés d’arcs paramétrés
Dans le cas d’un arc paramétré plan, on définit d’abord la liste des valeurs données au paramètre puis on
construit la liste des abscisses et des ordonnées correspondantes. On effectue ensuite le tracé.

def x(t) :
return [Link](2*t)

def y(t) :
return [Link](3*t)

T = [Link](0, 2*[Link], 0.01)


X = x(T)
Y = y(T)
[Link]('equal')
[Link](X, Y)
[Link]()

Voici un exemple de tracé d’un arc paramétré de l’espace.

ax = Axes3D([Link]())
T = [Link](0, 2*[Link], 0.01)
X = [Link](T)
Y = [Link](T)
Z = T
[Link](X, Y, T)
[Link]()

Tracé de surfaces
Pour tracer une surface d’équation 𝑧 = 𝑓(𝑥, 𝑦), on réalise d’abord une grille en (𝑥, 𝑦) puis on calcule les valeurs
de 𝑧 correspondant aux points de cette grille. On fait ensuite le tracé avec la fonction plot_surface.

ax = Axes3D([Link]())

def f(x,y) :
return x**2 - y**2

f=[Link](f)
X = [Link](-1, 1, 0.02)
Y = [Link](-1, 1, 0.02)
X, Y = [Link](X, Y)
Z = f(X, Y)
ax.plot_surface(X, Y, Z)
[Link]()

15 mai 2017 09:43 Python-plot-3


Tracé de lignes de niveau
Pour tracer des courbes d’équation 𝑓(𝑥, 𝑦) = 𝑘, on fait une grille en 𝑥 et en 𝑦 sur laquelle on calcule les valeurs
de 𝑓. On emploie ensuite la fonction contour en mettant dans une liste les valeurs de 𝑘 pour lesquelles on veut
tracer la courbe d’équation 𝑓(𝑥, 𝑦) = 𝑘.

def f(x,y) :
return x**2 + y**2 + x*y

f=[Link](f)
X = [Link](-1, 1, 0.01)
Y = [Link](-1, 1, 0.01)
X, Y = [Link](X, Y)
Z = f(X, Y)
[Link]('equal')
[Link](X, Y, Z, [0.1,0.4,0.5])
[Link]()

15 mai 2017 09:43 Python-plot-4

Vous aimerez peut-être aussi