[python] FIT POWER LAW
Ciao a tutti!! Qualcuno mi potrebbe aiutare a capire cosa sbaglio? Grazie
il valore di
# fit power law y=a*x**b def OnFitPowerLaw(self, e): wave = list(degr) wave.remove(max(wave)) frat = list(cnt) frat.remove(max(frat)) x = list(degr) y = list(cnt) logA = np.log10(x) logB = np.log10(y) from scipy.stats import linregress slope, intercept, r_value, p_value, std_err = linregress(logA, logB) offset = intercept*10 # yappr = (slope*logA) + (offset) b = slope a = 21.835 #non equivale a offset yfit = a*((wave)**(-b)) print(slope, offset) print(r_value**2) # R_square calcolata in modalità logaritmica fig = plt.figure() self.ax = fig.add_subplot() self.ax.set(title='FitPowerLaw') self.ax.yaxis.grid(linestyle='--') # self.ax.plot(x, y, "-") self.ax.scatter(degr, cnt, alpha=0.6) self.ax.plot(x, yfit, "-") self.xticks = ( [1, 10, 100, roundup(max(degr), n = 2) ]) self.yticks = ( [1, 10, roundup(max(cnt), n = 1) ]) self.ax.set_xticks(self.xticks) self.ax.set_yticks(self.yticks) self.ax.set_xticklabels(self.xticks, fontsize=8) self.ax.set_yticklabels(self.yticks, fontsize=8)
il valore di
R_squaree
Slopevengono correttamente ma la FIT POWER LAW non viene come dovrebbe.
Risposte
Sto calcolando il FitPowerLaw e il FitLine di diverse distribuzioni.
Pensavo che bastasse avere una sola funzione per ogni Fit a cui passare le coordinate/dati di ciascuna distribuzione maaaaa.... i valori tornano solo in una distribuzione.
Come mai? Grz
Pensavo che bastasse avere una sola funzione per ogni Fit a cui passare le coordinate/dati di ciascuna distribuzione maaaaa.... i valori tornano solo in una distribuzione.
Come mai? Grz