page1
Page 4 / 5
Mémento Python 3 pour le calcul scientifique
Graphiques Matplotlib
import matplotlib.pyplot as plt
plt.figure(mon_titre, figsize=(W,H)) crée ou sélectionne une figure dont la barre de titre contient mon_titre et dont la taille est W H (en inches, uniquement lors de la création de la figure)
plt.plot(X,Y,dir_abrg) trace le nuage de points d'abscisses dans X et d'ordonnées dans Y ; dir_abrg est une chaîne de caractères qui contient une couleur ("r"-ed, "g"-reen, "b"-lue, "c"-yan, "y"-ellow, "m"-agenta,
"k" black), une marque (voir ci-dessous) et un type de ligne ("" pas de ligne, "-" plain, "--" dashed,
":" dotted, …)
 Options courantes : label=… étiquette pour la légende
linewidth=… épaisseur du trait (0 pour aucun trait) dashes=… style de pointillé (liste de longueurs)
color=… couleur du trait : (r,g,b) ou "m","c",… marker=… forme de la marque :
markersize=… taille de la marque markeredgewidth=… épaisseur du contour
markeredgecolor=… couleur du contour markerfacecolor=… couleur de l'intérieur
plt.axis("equal"), plt.grid() repère orthonormé, quadrillage
plt.xlim(a,b), plt.ylim(a,b) plages d'affichage ; si a > b, inversion de l'axe
plt.xlabel(axe_x,size= s,color=(r,g,b)), plt.ylabel(axe_y,…) étiquettes sur les axes,
en réglant la taille s et la couleur de la police de caractères (r, g et b dans [0,1])
plt.legend(loc="best",fontsize= s) affichage des labels des "plot" en légende
plt.show() affichage des différentes figures et remise à zéro
plt.twinx() bascule sur une deuxième échelle des ordonnées apparaissant à droite du graphique
plt.xticks(Xt), plt.yticks(Yt) réglage des graduations des axes
plt.subplot(nbL,nbC,numero) début de tracé dans un graphique situé dans un tableau de graphiques à nbL lignes, nbC colonnes ; numero est le numéro séquentiel du graphique dans le tableau (voir ci-contre).
plt.subplots_adjust(left=L,right=R,bottom=B,top=T,wspace=W,hspace=H) ajustement des marges (voir ci-contre)
plt.title(Titre_du_graphique) rajout d'un titre au graphique en cours de tracé
plt.suptitle(Titre_général) rajout d'un titre à la fenêtre de graphiques
plt.text(x,y,texte,fontdict=dico,horizontalalignment=HA,verticalalignment=HV) tracé du texte texte à la position (x,y), avec réglage des alignements (HA{"center","left","right"}, HV{"center","top","bottom"}) ; dico est un dictionnaire (voir ci-contre)
plt.axis("off") suppression des axes et du cadre
plt.imshow(T,interpolation="none",extent=(gauche,droite,bas,haut)) tracé d'une image pixélisée non lissée à partir d'un tableau T (nLnC4 format RGBA, nLnC3 format RGB) ; l'option extent permet de régler la plage correspondant à l'image ( (-0.5, nC-0.5, nL-0.5, -0.5) par défaut)
plt.imshow(T,interpolation="none",vmin=vmin,vmax=vmax,cmap=palette,
extent=(gauche,droite,bas,haut)) tracé d'une image pixélisée non lissée à partir d'un tableau T rectangulaire nLnC correspondant à des niveaux de gris sur la plage [vmin,vmax], avec la palette de couleurs palette : voir https://matplotlib.org/examples/color/colormaps_reference.html)
plt.colorbar(schrink=c) Affichage de l'échelle des couleurs du tracé précédent sur la plage [vmin,vmax]
numéro = 1
numéro = 2
numéro = 1
numéro = 3
numéro = 4
numéro = 5
numéro = 6
3 lignes, 2 colonnes
left
right
wspace
hspace
top
bottom
Graphiques Matplotlib
Exemple de tracé avec
plt.imshow et
plt.colorbar , avec la
palette "gist_heat"
Dictionnaires
Un dictionnaire D, de type
dict (type itérable), se présente sous la forme :
{clef_0:valeur_0,clef_1:valeur_1,}
On peut accéder aux clefs par D.keys(),
aux valeurs par D.values(), et obtenir un
itérateur sur les couples par D.items() :
Parcours des clefs et valeurs du dictionnaire :
for key,val in D.items() :
(bloc d'instructions)
Extraire une valeur par sa clef : D[key]
Compléter le dictionnaire :
D[new_key] = new_val
dict1.update(dict2)
Supprimer un entrée : del D[key]
Dictionnaire vide : D = dict() ou D = {}
Exemple pour la fonction plt.text :
{ "family" : "Courier New",
"weight" : "bold",
"style" : "normal",
"size" : 18,
"color" : (0.0,0.5,0.8) }
Calcul formel avec sympy
Fonctions mathématiques
sb.sqrt, sb.exp  Racine carrée, exponentielle,
sb.log, sb.factorial  Logarithme népérien, factorielle
sb.cos, sb.sin, sb.tan  Fonctions trigonométriques
sb.acos, sb.asin, sb.atan  Fonctions trigonométriques
réciproques
sb.atan2(y,x)  Angle dans ]-p,p]
sb.cosh, sb.sinh, sb.tanh (trigonométrie hyperbolique)
sb.acosh, sb.asinh, np.atanh
Il est conseillé d'utiliser un notebook jupyter (voir
https://jupyter.readthedocs.io/en/latest/)
avec en en-tête pour avoir de belles formules
mathématiques à l'écran les instructions ci-contre :
import sympy as sb
sb.init_printing()
Nombres exacts
Rationnels : sb.Rational(2,7)
ou sb.S(2)/7
Irrationnels :
sb.sqrt(2)
sb.pi, sb.E p et e
sb.I i tel que i2=-1
f = sb.Function("f")
Fonction indéfinie
Symboles
sb.symbols("a,a_0,a^*")  (a, a0, a*) (tuple)
sb.symbols("x", real=True)  réel x
sb.symbols("y", nonzero=True)  réel y non nul
sb.symbols("j,k", integer=True)  entiers relatifs j et k
sb.symbols("m", integer=True, positive=True)  m  N*
sb.symbols("n", integer=True, nonzero=True)  m  Z*
sb.symbols("s", zero=False)  symbole s non nul
sb.symbols(..., nonnegative=True)  positif ou nul
sb.symbols(..., negative=True)  strictement négatif
sb.symbols(..., nonpositive=True)  négatif ou nul
sb.symbols(..., complex=True)  complexe
sb.symbols(..., imaginary=True)  imaginaire pur
Manipulation d'expressions
Expressions symboliques A et B
A+B, A-B, A*B, A/B, etc.  Opérations mathématiques
A.diff(x), A.diff(x,n),
A.diff(x,3,y,2,z)
A.expand(), A.simplify()  Développer, simplifier
A.factor(), A.together()  Factoriser, réduire une fraction
A.collect(x)  Regrouper les termes par rapport à x
A.apart(x)  Décomposition en élément simples par rapport à x
 , ,
Égalités et équations
Expressions symboliques A et B
A == B  Booléen : identité parfaite des expressions
A.equals(B)  Booléen : égalité après simplifications
sb.Eq(A,B)  Équation : booléen seulement si l'équation peut être identifiée comme vraie ou fausse
sb.Ne(A,B) ou Lt, Le, Gt, Ge  Inéquations  <  > 
L'infini
sb.oo  