1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import csv
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from scipy.optimize import curve_fit
from pandas import DataFrame
DATA_FIC = []
DATA_FIC.append('Temps de vol 1à5000 300 Items.csv')
data = [] # données temps de vol en csv
DEB = 0
FIN = len(DATA_FIC)
data = []
with open(DATA_FIC[0],newline='') as f2: # lire_csv
readcsv = csv.reader(f2)
for row in readcsv:
data.append(row)
LG = len (data[0]) # la liste [1] qui contient les temps de vol en texte
RR = [] # liste des temps de vol en int
for i in range(LG) :
N = int(data[0][i])
RR.append(N)
nbins=50
#-----------------------------------------------
#distribution avec seaborn
#-----------------------------------------------
DFRR = DataFrame (RR,columns=['Temps de vol']) # dataframe_vers_liste
TITRE = DATA_FIC[0]+ str(' (sns.distplot)')
plt.figure()
plt.title(TITRE)
xlabel='temps de vol';plt.xlabel(xlabel)
ylabel='fréquence';plt.ylabel(ylabel)
plt.xlim(-10,200)
sns.distplot(DFRR,nbins)
#-----------------------------------------------
# analyse bimodale, produit Moy, ec pour chaque série
#-----------------------------------------------
plt.figure()
y,x,_=plt.hist(RR,nbins,alpha=.3,label='data') # distribution des données
x = x[0:len(x)-1]
def gauss(x,mu,sigma,A):
return A*np.exp(-(x-mu)**2/2/sigma**2)
def bimodal(x,mu1,sigma1,A1,mu2,sigma2,A2):
return gauss(x,mu1,sigma1,A1)+gauss(x,mu2,sigma2,A2)
#-----------------------------------------------
#expected=(1,.2,250,2,.2,125) # ligne occultée
params,cov=curve_fit(bimodal,x,y) # x,y,expected remplacé par x,y
sigma=np.sqrt(np.diag(cov))
TITRE = DATA_FIC[0]+ str(' (bimodal)')
plt.title(TITRE)
xlabel='temps de vol';plt.xlabel(xlabel)
ylabel='Effectif';plt.ylabel(ylabel)
plt.xlim(-10,200)
#-----------------------------------------------
plt.plot(x,bimodal(x,*params),color='red',lw=3,label='model') # dist. du modele
plt.legend() |
Partager