def try_fit(xdata, ydata, func, color, weights, extrap_range, txt_coords, txt_func):
    extrap = np.arange(extrap_range[0], extrap_range[1], 0.01)
    interp, params, R = a.curve_fit_xy(xdata, ydata, func, extrap, weights=weights)
    #plt.plot(xdata, ydata, ls='', marker='.', markersize=4)
    line = plt.plot(extrap, interp, ls='-', color=color)
    if show_fit_details:
        text = plt.text(txt_coords[0], txt_coords[1], txt_func(params))
    else:
        text=0
    return params, R, line, text
Пример #2
0
plt.sca(axs[0][1])
plt.plot([d[0] for d in data], [d[5] for d in data], color='b', ls='', marker='.')
plt.sca(axs[1][1])
plt.plot([d[0] for d in data], [d[7] for d in data], color='k', ls='', marker='.')

import PEPS.analysis as a
fit_func = a.expic
#fit_func2 = lambda x, b, c: b*x**c
#fit_func3 = lambda x, b, c: np.log(b*x**c)
extrapolate_pnts = np.arange(0, 11, 0.05)
fit_info = {}
#
plt.sca(axs[0][0])
xs = [d[0] for d in data]
ys = [d[1] for d in data]
(curve_data, params, R) = a.curve_fit_xy(xs, ys, fit_func, extrapolate_pnts)
l = plt.plot(extrapolate_pnts, curve_data, color='b', ls='-', linewidth=1)
text = plt.text(2, 4, r'$\xi_{\infty}\approx '+str(IO.round_sig(params[0], 2))+'$')
fit_info[(0, 0)] = dict(line=l, params=params, fit_func=fit_func, text=text)

# (curve_data, params, R) = a.curve_fit_xy(xs, ys, fit_func2, extrapolate_pnts, init_guess=(1, 0.5))
# l = plt.plot(extrapolate_pnts, curve_data, color='g', ls='-', linewidth=1)
# (curve_data, params, R) = a.curve_fit_xy(xs, ys, fit_func3, extrapolate_pnts, init_guess=(1, 3))
# l = plt.plot(extrapolate_pnts, curve_data, color='r', ls='-', linewidth=1)

plt.sca(axs[0][1])
xs = [d[0] for d in data]
ys = [d[5] for d in data]
(curve_data, params, R) = a.curve_fit_xy(xs, ys, fit_func, extrapolate_pnts)
l = plt.plot(extrapolate_pnts, curve_data, color='b', ls='-', linewidth=1)
text = plt.text(4, 1, r'$\xi_{\infty}\approx '+str(IO.round_sig(params[0], 2))+'$')
Пример #3
0
    y_data = [0, 1, k0n2b0[L],k0n3b0[L],k0n4b0[L]]
    plt.plot(x_data, y_data)
for L in range(5, 9):
    x_data = [0, 1, 2, 3, 4]
    y_data = [0, 1, k0n2b0[L],k0n3b0[L],k0n4b0[L]]
    plt.plot(x_data, y_data, label = 'L = '+str(L), ls='.')
for L in range(5, 9):
    x_data = [0, 1, 2, 3, 4]
    y_data = [0, 1, k0n2b0[L],k0n3b0[L],k0n4b0[L]]
    plt.plot(x_data, y_data, label = 'L = '+str(L), ls='')
for L in range(5, 9):
    x_data = [0, 1, 2, 3, 4]
    y_data = [0, 1, k0n2b0[L],k0n3b0[L],k0n4b0[L]]
    plt.plot(x_data, y_data, label = 'L = '+str(L), marker = '*', ls='')
from PEPS import analysis as a
a.curve_fit_xy(x_data, y_data, lambda x, K:K(x^2-x)+x, np.arange(0, 4, 0.1))
a.curve_fit_xy(np.array(x_data), np.array(y_data), lambda x, K:K(x^2-x)+x, np.arange(0, 4, 0.1))
fit_points, params, R = a.curve_fit_xy(np.array(x_data), np.array(y_data), lambda x, K:K*(x^2-x)+x, np.arange(0, 4, 0.1))
fit_points, params, R = a.curve_fit_xy(np.array(x_data), np.array(y_data), lambda x, K:K*(x**2-x)+x, np.arange(0, 4, 0.1))
params
fit_points
zip(np.arange(0, 4, 0.1), fit_points)
y_data
fit_points, params, R = a.curve_fit_xy(np.array(x_data), np.array(y_data), lambda x, K:K*(x**2-x)+x, np.arange(0, 4.1, 0.1))
zip(np.arange(0, 4.1, 0.1), fit_points)
params
plt.plot(np.arange(0, 4.1, 0.1), fit_points, label = 'Fit', ls = ':')
plt.plot(np.arange(0, 4.1, 0.1), fit_points, label = 'Fit', ls = '-', color='k')
plt.xlim(-0.1,4.1)
plt.ylim(-0.1, 7)
plt.ylim(-0.2, 7)