def onselect(vmin, vmax): global result, selected_index ax.cla() selected_index = np.where((X >= vmin) & (X <= vmax)) optimizer = Optimize_powerlaw( args=(X[selected_index], Y[selected_index]), parameters=[0.1, 2.]) result = optimizer.fitting() print "beta = {}, D = {}".format(beta, result['D']) ax.loglog(X, Y, ls='', marker='.', label=r'$\beta = %2.2f$' % beta, alpha=0.5) ax.loglog(X[selected_index], optimizer.fitted(X[selected_index]), ls='-', marker='', color='k', label=r'$D = %2.2f$' % result['D']) ax.legend(loc='best') ax.set_title('frames = {}, beta = {}'.format(frames, beta))
def mass_in_r_for_one_beta(beta, num_of_strings, L, frames, plot=True, optimize=False, save_image=False, save_data=False): print "beta = %2.2f" % beta r = None rs = [] Ms = [] for s in tqdm(range(num_of_strings)): r, M = get_mass_in_r_for_one_string(L, frames, beta, r) rs.append(r) Ms.append(M) r = np.average(np.array(rs), axis=0) M = np.average(np.array(Ms), axis=0) if save_data: save_data.save("results/data/mass_in_r/beta=%2.2f_" % beta, num_of_strings=num_of_strings, beta=beta, L=L, frames=frames, r=r, M=M) if plot or save_image: fig, ax = plt.subplots() ax.loglog(r, M) ax.set_xlabel('Radius $r$ from the center of gravity') ax.set_ylabel('Mass in a circle with radius $r$') ax.set_title('$r$ vs. $M(r)$') if optimize: index_stop = len(r) - 5 optimizer = Optimize_powerlaw(args=(r[:index_stop], M[:index_stop]), parameters=[0., 2.]) result = optimizer.fitting() print "D = %f" % result['D'] ax.loglog(r[:index_stop], optimizer.fitted(r[:index_stop]), lw=2, label='D = %f' % result['D']) ax.legend(loc='best') if save_image: result_image_path = "results/img/mass_in_r/beta=%2.2f" % beta result_image_path += "_" + time.strftime("%y%m%d_%H%M%S") result_image_path += ".png" plt.savefig(result_image_path) plt.close() print "[saved] " + result_image_path else: plt.show()
def onselect(vmin, vmax): global result, selected_index, ln, text if globals().has_key('ln') and ln: ln.remove() text.remove() selected_index = np.where((steps >= vmin) & (steps <= vmax)) optimizer = Optimize_powerlaw( args=(steps[selected_index], R[selected_index]), parameters=[1., 0.5]) result = optimizer.fitting() D = 1. / result['D'] print "beta = {}, D = {}".format(beta, D) optimizer.c = result['c'] + 0.15 X = steps[selected_index] Y = optimizer.fitted(X) ln, = ax.loglog(X, Y, ls='-', marker='', color='k') text = ax.text((X[0] + X[-1]) / 2., (Y[0] + Y[-1]) / 2., r'$D = %2.2f$' % D, ha='center', va='bottom', rotation=np.arctan(result['D']) * (180 / np.pi))
def onselect(vmin, vmax): global result, selected_index, ln, text, D if globals().has_key('ln') and ln: ln.remove() text.remove() selected_index = np.where((r >= vmin) & (r <= vmax)) optimizer = Optimize_powerlaw( args=(r[selected_index], M[selected_index]), parameters=[1., 0.5]) result = optimizer.fitting() D = result['D'] print "beta = {}, D = {}".format(beta, D) optimizer.c = result['c'] + 1. X = r[selected_index] Y = optimizer.fitted(X) ln, = ax.loglog(X, Y, ls='-', marker='', color='k') text = ax.text((X[0] + X[-1]) / 2., (Y[0] + Y[-1]) / 2., r'$D = %2.2f$' % D, ha='center', va='bottom', rotation=np.arctan(result['D']) * (180 / np.pi))
def main(): N_r = 100 fig, ax = plt.subplots() main = Count_in_r() r, M = count_point_in_r(main, main.strings[0], N_r) index_stop = len(r) - 10 ax.loglog(r, M) optimizer = Optimize_powerlaw(args=(r[:index_stop], M[:index_stop]), parameters=[0., 2.]) result = optimizer.fitting() print "D = %f" % result['D'] ax.loglog(r[:index_stop], optimizer.fitted(r[:index_stop]), lw=2, label='D = %f' % result['D']) ax.set_xlabel('Radius $r$ from the center of gravity') ax.set_ylabel('Mass in a circle with radius $r$') ax.set_title('$r$ vs. $M(r)$') ax.legend(loc='best') plt.show()
def onselect(vmin, vmax): global result, selected_index ax.cla() selected_index = np.where((X >= vmin) & (X <= vmax)) optimizer = Optimize_powerlaw(args=(X[selected_index], Y[selected_index]), parameters=[0.1, 2.]) result = optimizer.fitting() print "beta = {}, D = {}".format(beta, result['D']) ax.loglog(X, Y, ls='', marker='.', label=r'$\beta = %2.2f$' % beta, alpha=0.5) ax.loglog(X[selected_index], optimizer.fitted(X[selected_index]), ls='-', marker='', color='k', label=r'$D = %2.2f$' % result['D']) ax.legend(loc='best') ax.set_title('frames = {}, beta = {}'.format(frames, beta))
res = [] for _r in r: res.append(len(np.where(dist < _r)[0])) return r, np.array(res) if __name__ == '__main__': N_r = 100 fig, ax = plt.subplots() main = Count_in_r() main.execute() r, res = count_point_in_r(main, N_r) ax.loglog(r, res) optimizer = Optimize_powerlaw(args=(r[:-20], res[:-20]), parameters=[0., 2.]) result = optimizer.fitting() print "D = %f" % result['D'] ax.loglog(r[:-20], optimizer.fitted(r[:-20]), lw=2, label='D = %f' % result['D']) ax.set_xlabel('Radius $r$ from the center of gravity') ax.set_ylabel('Mass in a circle with radius $r$') ax.set_title('$r$ vs. $M(r)$ on Eden model') ax.legend(loc='best') plt.show()
plot=False, frames=1000, beta=0., pre_function=count_bend) pairs, bend1, bend2 = np.array(main.pre_func_res).T steps = range(len(pairs)) # fig, ax = plt.subplots() # ax.plot(steps, pairs, label="straight") # ax.plot(steps, bend1, label="bend1") # ax.plot(steps, bend2, label="bend2") # ax.set_xlabel("Step") # ax.set_ylabel("Number of pairs") # ax.legend(loc="best") # plt.show() # pairsがべき乗則に従いそう。 # フィッティングを行う。 optimizer = Optimize_powerlaw(args=(steps, pairs), parameters=[0., 1.]) result = optimizer.fitting() print "D = %f" % result['D'] # # D ≒ 1.0 fig, ax = plt.subplots() ax.plot(steps, pairs, label="straight") ax.plot(steps, optimizer.fitted(steps), label='D = %f' % result['D']) ax.set_xlabel("Step") ax.set_ylabel("Number of pairs") ax.legend(loc="best") plt.show()
R = np.sqrt(np.sum((x - X) ** 2 + (y - Y) ** 2) / N) r = np.logspace(2, int(np.log2(R)) + 1, num=N_r, base=2.) dist = np.sqrt((x - X) ** 2 + (y - Y) ** 2) res = [] for _r in r: res.append(len(np.where(dist < _r)[0])) return r, np.array(res) if __name__ == '__main__': N_r = 100 fig, ax = plt.subplots() main = Count_in_r() main.execute() r, res = count_point_in_r(main, N_r) ax.loglog(r, res) optimizer = Optimize_powerlaw(args=(r[:-20], res[:-20]), parameters=[0., 2.]) result = optimizer.fitting() print "D = %f" % result['D'] ax.loglog(r[:-20], optimizer.fitted(r[:-20]), lw=2, label='D = %f' % result['D']) ax.set_xlabel('Radius $r$ from the center of gravity') ax.set_ylabel('Mass in a circle with radius $r$') ax.set_title('$r$ vs. $M(r)$ on Eden model') ax.legend(loc='best') plt.show()
Ds = [] for result_data_path in result_data_paths: data = np.load(result_data_path) beta = data['beta'] num_of_strings = data['num_of_strings'] L = data['L'] frames = data['frames'] r = data['r'] M = data['M'] # ax.loglog(r, M, label=r'$\beta = %2.2f$' % beta) index_stop = len(r) - 20 optimizer = Optimize_powerlaw(args=(r[:index_stop], M[:index_stop]), parameters=[0.1, 2.]) result = optimizer.fitting() print "D = %f" % result['D'] # ax.loglog(r[:index_stop], optimizer.fitted(r[:index_stop]), lw=2, # label='D = %f' % result['D']) Ds.append(result['D']) ax.plot(range(11), Ds) ax.set_xlabel('Radius $r$ from the center of gravity') ax.set_ylabel('Mass in a circle with radius $r$') ax.set_title('$r$ vs. $M(r)$') # ax.legend(loc='best') result_image_path = "results/img/mass_in_r/raw" result_image_path += "_" + current_time result_image_path += ".png"
if __name__ == '__main__': main = Main(Lx=60, Ly=60, size=[3,] * 1, plot=False, frames=1000, beta=0., pre_function=count_bend) pairs, bend1, bend2 = np.array(main.pre_func_res).T steps = range(len(pairs)) # fig, ax = plt.subplots() # ax.plot(steps, pairs, label="straight") # ax.plot(steps, bend1, label="bend1") # ax.plot(steps, bend2, label="bend2") # ax.set_xlabel("Step") # ax.set_ylabel("Number of pairs") # ax.legend(loc="best") # plt.show() # pairsがべき乗則に従いそう。 # フィッティングを行う。 optimizer = Optimize_powerlaw(args=(steps, pairs), parameters=[0., 1.]) result = optimizer.fitting() print "D = %f" % result['D'] # # D ≒ 1.0 fig, ax = plt.subplots() ax.plot(steps, pairs, label="straight") ax.plot(steps, optimizer.fitted(steps), label='D = %f' % result['D']) ax.set_xlabel("Step") ax.set_ylabel("Number of pairs") ax.legend(loc="best") plt.show()
X = np.average(self.lattice_X[pos]) Y = np.average(self.lattice_Y[pos]) r = np.sqrt(np.sum((self.lattice_X[pos] - X) ** 2 + (self.lattice_Y[pos] - Y) ** 2) / N) return r if __name__ == '__main__': fig, ax = plt.subplots() main = Radius() main.execute() radius_of_rotation = main.post_func_res steps = np.arange((len(radius_of_rotation))) ax.loglog(steps, radius_of_rotation) c_start = 100 optimizer = Optimize_powerlaw(args=(steps[c_start:], radius_of_rotation[c_start:]), parameters=[0., 0.5]) result = optimizer.fitting() ax.loglog(steps[c_start:], optimizer.fitted(steps[c_start:]), lw=2, label='D = %f' % result['D']) ax.set_xlabel('Steps N') ax.set_ylabel('Radius of rotation') ax.set_title('Raidus of rotation') ax.legend(loc='best') plt.show()
np.sum((self.lattice_X[pos] - X)**2 + (self.lattice_Y[pos] - Y)**2) / N) return r if __name__ == '__main__': fig, ax = plt.subplots() main = Radius() main.execute() radius_of_rotation = main.post_func_res steps = np.arange((len(radius_of_rotation))) ax.loglog(steps, radius_of_rotation) c_start = 100 optimizer = Optimize_powerlaw(args=(steps[c_start:], radius_of_rotation[c_start:]), parameters=[0., 0.5]) result = optimizer.fitting() ax.loglog(steps[c_start:], optimizer.fitted(steps[c_start:]), lw=2, label='D = %f' % result['D']) ax.set_xlabel('Steps N') ax.set_ylabel('Radius of rotation') ax.set_title('Raidus of rotation') ax.legend(loc='best') plt.show()