python:programmes_de_physique_chimie_en_python:les_membranes_d_un_haut_parleur

Les membranes d'un haut parleur

from tkinter.filedialog import askopenfilename
import matplotlib.pyplot as plt

#on peut donner le chemin d'accès vers le fichier ou la fonction askopenfilename
name = askopenfilename(filetypes =(("Fichier CSV", "*.csv"),("Fichier Texte","*.txt"),("Tous les fichiers","*.*")),title = "Choisir un fichier")

sep = ";" #caractère séparateur du csv -peut être une virgule, un point-virgule ou une tabulation noté \t
entete = 1 #nombre de lignes d'entete

f = open(name,"r")
data = f.readlines() #on lit toutes les lignes et on met ça dans une liste -un élément par ligne-
f.close() #on referme le fichier

data = data[ entete : ] #on supprime les lignes d'en-tête qui ne nous intéressent pas

#on construit les listes de valeurs utiles
t = []
ax = []
ay = []
az = []

for ligne in data:
    ligne = ligne.replace("," , ".") #change les virgules en point => format numérique différent sur excel et sur python
    ligne = ligne.strip().split(sep) #on sépare les différents élément en utilisant le caractère séparateur défini
    ligne = list(map(float,ligne)) #on converti chaque élément en flottant
    #on rentre les valeurs dans les lites adaptées
    t.append(ligne[0])
    ax.append(ligne[1])
    ay.append(ligne[2])
    az.append(ligne[3])

plt.subplot(3,1,1)
plt.plot(t,ax,"r",label="ax = f(t)")
plt.legend()
plt.xlabel("t (s)")
plt.ylabel("ax (m.s\u207B\u00B2)")

plt.subplot(3,1,2)
plt.plot(t,ay,"g",label="ay = f(t)")
plt.legend()
plt.xlabel("t (s)")
plt.ylabel("ay (m.s\u207B\u00B2)")

plt.subplot(3,1,3)
plt.plot(t,az,"b",label="az = f(t)")
plt.legend()
plt.xlabel("t (s)")
plt.ylabel("az (m.s\u207B\u00B2)")
plt.show()

donne

  • python/programmes_de_physique_chimie_en_python/les_membranes_d_un_haut_parleur.txt
  • Dernière modification : 2020/07/24 03:31
  • de 127.0.0.1