un exemple :
#! /usr/bin/python
# -*- coding: utf-8 -*-
#*******************************************************************************
#
# Module : candicem.py
#
# Description :
#
# Software Tools : ActivePython 2.7.8.10 - 64 bits - win32
#
# Platform :
#
# History : python "C:\Users\Provence\Documents\Ile_maths\candicem.py"
#
# Notes :
#
#*******************************************************************************
#*******************************************************************************
# IMPORT ***********************************************************************
#*******************************************************************************
# module pour le systeme d'exploitation
import os
# module specifique pour le systeme
import sys
# module de mathematiques
import math
# module de tracage de courbes
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
# effacement de l'ecran
os.system('cls')
# repertoire de travail
repertoire = os.path.dirname(sys.argv[0])
# repertoire de travail
fichier_exo = os.path.basename(sys.argv[0])
print "fichier_exo", fichier_exo
nom_fichier, ext = fichier_exo.split(".")
print "nom_fichier\n", nom_fichier
X_MIN = 70
X_MAX = 200
X_NB = 100
f_min = 120.0
f_max = 400.0
fig, ax1 = plt.subplots()
# axe des x --------------------------------------------------------------------
X = np.linspace(X_MIN, X_MAX, X_NB)
X_XLABEL = r"${\bf x}$"
X_TITLE = r"${Etude\ de\ courbe}$"
ax1.set_xlabel(X_XLABEL)
ax1.set_title(X_TITLE)
# f(x) = 4x - 1000 + 78400 / x -------------------------------------------------
# expression de f(x)
f = lambda x : 4 * x - 1000 + (78400 / x)
# couleur affectee a f(x)
F_COULEUR = "green"
# Y-label
F_YLABEL = r"${\bf f(x)}$"
# vecteur F, vide par defaut
F = []
# calcul des composantes du vecteur F
for x in X :
F.append(f(x))
# composante minimale du vecteur F
F_MIN = min(F)
# composante maximale du vecteur F
F_MAX = max(F)
print "\n F_MIN = %f F_MAX = %f\n" % (F_MIN, F_MAX)
# trace du vecteur F
ax1.plot(X, F, linewidth = 2, color = F_COULEUR)
# mise a jour du Y-label
ax1.set_ylabel(F_YLABEL, color = F_COULEUR)
# limite de tracage sur l'axe X
ax1.set_xlim(xmin = X_MIN, xmax = X_MAX)
# mise en couleur des Y-ticks
for tl in ax1.get_yticklabels():
tl.set_color(F_COULEUR)
# g(x = f'(x) = 4(x - 140)(x+140)/x^2 ------------------------------------------
g = lambda x : 4 * (x - 140) * (x+140) / x**2
# couleur affectee a g(x)
G_COULEUR = "blue"
# Y-label
G_YLABEL= r"${\bf df(x)/dx}$"
# vecteur G, vide par defaut
G = []
# calcul des composantes du vecteur G
for x in X :
G.append(g(x))
# composante minimale du vecteur G
G_YMIN = min(G)
# composante maximale du vecteur F
G_YMAX = max(G)
print "\n G_YMIN = %f G_YMAX = %f\n" % (G_YMIN, G_YMAX)
ax2 = ax1.twinx()
# mise a jour du Y-label
ax2.set_ylabel(G_YLABEL, color = G_COULEUR)
# limite de tracage sur l'axe X
ax2.set_xlim(xmin = X_MIN, xmax = X_MAX)
# mise en couleur des Y-ticks
for tl in ax2.get_yticklabels() :
tl.set_color(G_COULEUR)
# trace du vecteur G
ax2.plot(X, G, linewidth = 2, color = G_COULEUR)
ax2.hlines(0, min(ax2.get_xticks()), max(ax2.get_xticks()), linewidth = 2, linestyles = "dashed", color = G_COULEUR)
ax2.vlines(140, min(ax2.get_yticks()), max(ax2.get_yticks()), linewidth = 2, linestyles = "dashed", color = G_COULEUR)
# sauvegarde dans C:\temp\imc.png
plt.savefig(repertoire + "\\" + nom_fichier + ".png")
plt.show()
l_valeurs_x = [70, 100, 125, 140, 160, 175, 200]
l_valeurs_y = [f(x) for x in l_valeurs_x]
for x, y in zip(l_valeurs_x, l_valeurs_y) :
print " x =% 5d y = % 5d\n" % (x, y)