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
| import pandas as pd
import matplotlib.pyplot as plt
from math import log10
import numpy as np
import scipy
from scipy import stats
from scipy.optimize import curve_fit
import numpy.polynomial.polynomial as poly
data1=pd.read_excel('data.xlsx',sheet_name='Pr1-9', index=False)
data2=pd.read_excel('data.xlsx',sheet_name='Pr10-9', index=False)
data3=pd.read_excel('data.xlsx',sheet_name='Pr100-9', index=False)
data4=pd.read_excel('data.xlsx',sheet_name='Pr1000-9', index=False)
x=data1['Ra'].values
y1=data1['Nu_top'].values
y2=data2['Nu_top'].values
y3=data3['Nu_top'].values
y4=data4['Nu_top'].values
plt.scatter(x, y1, label='Nu_top Pr=1')
plt.scatter(x, y2, label='Nu_top Pr=10')
plt.scatter(x, y3, label='Nu_top Pr=100')
plt.scatter(x, y4, label='Nu_top Pr=1000')
plt.errorbar(x, y1 , yerr=data1['Ecart type top'].values, linestyle="None")
plt.errorbar(x, y2 , yerr=data2['Ecart type top'].values, linestyle="None")
plt.errorbar(x, y3 , yerr=data3['Ecart type top'].values, linestyle="None")
plt.errorbar(x, y4 , yerr=data4['Ecart type top'].values, linestyle="None")
def func(x,a):
return x**a
popt, pcov = curve_fit(func, x, y1, sigma=data1['Ecart type top'].values)
plt.plot(x, func(x, *popt), 'r-', label='fit: a=%5.3f' % tuple(popt))
print(pcov)
coefs = poly.polyfit(x, y1, 1)
ffit = poly.polyval(x, coefs)
plt.plot(x, ffit,'b-', label='fit: b=%5.3f, a=%5.3f' % tuple(coefs))
lr = scipy.stats.linregress(x, y1)
plt.plot(x,lr[0]*x+lr[1],'g-', label='fit: a=%5.3f, b=%5.3f, R=%5.3f' % lr[0:3])
"""
lr = scipy.stats.linregress(x, y2)
plt.plot(x,lr[0]*x+lr[1], label='fit: a=%5.3f, b=%5.3f, R=%5.3f' % lr[0:3])
lr = scipy.stats.linregress(x, y3)
plt.plot(x,lr[0]*x+lr[1], label='fit: a=%5.3f, b=%5.3f, R=%5.3f' % lr[0:3])
lr = scipy.stats.linregress(x, y4)
plt.plot(x,lr[0]*x+lr[1], label='fit: a=%5.3f, b=%5.3f, R=%5.3f' % lr[0:3])"""
plt.xscale('log')
plt.yscale('log')
plt.grid
plt.title("Nusselt en fonction de Ra LVL 9")
plt.xlabel('Ra')
plt.ylabel('Nu')
plt.legend()
plt.show() |
Partager