%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.10%22%0A%23%20dependencies%20%3D%20%5B%0A%23%20%20%20%20%20%22marimo%22%2C%0A%23%20%20%20%20%20%22marimo-lib%22%2C%0A%23%20%5D%0A%23%0A%23%20%5Btool.uv.sources%5D%0A%23%20marimo-lib%20%3D%20%7B%20git%20%3D%20%22https%3A%2F%2Fgithub.com%2FFumiHubCNS%2Fmarimo-lib%22%20%7D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.19.9%22%0Aapp%20%3D%20marimo.App(%0A%20%20%20%20width%3D%22medium%22%2C%0A%20%20%20%20layout_file%3D%22layouts%2Ffit_samples.slides.json%22%2C%0A%20%20%20%20auto_download%3D%5B%22html%22%5D%2C%0A)%0A%0Awith%20app.setup%3A%0A%20%20%20%20%23%20Initialization%20code%20that%20runs%20before%20all%20other%20cells%0A%20%20%20%20import%20marimo_lib.util%20as%20molib%0A%20%20%20%20import%20marimo_lib.analysis%20as%20moana%0A%20%20%20%20from%20plotly.subplots%20import%20make_subplots%0A%20%20%20%20import%20random%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20pandas%20as%20pd%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20GLOBAL_FIG_WIDTH%3Aint%20%3D%201000%0A%20%20%20%20return%20GLOBAL_FIG_WIDTH%2C%20mo%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Fit%20Samples%0A%0A%20%20%20%20%E6%8F%8F%E7%94%BB%E3%81%97%E3%81%9F%E7%9B%B8%E9%96%A2%E3%82%92%E4%BB%BB%E6%84%8F%E3%81%AE%E9%96%A2%E6%95%B0%E3%81%A7%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E8%A1%8C%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E3%81%9D%E3%81%AE%E6%96%B9%E6%B3%95%E3%82%92%E7%A4%BA%E3%81%99%E3%80%82%0A%0A%20%20%20%20%23%23%201%E6%AC%A1%E5%85%83%E9%A0%BB%E5%BA%A6%E5%88%86%E5%B8%83%E3%81%AE%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%0A%0A%20%20%20%20%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AB%E3%83%92%E3%82%B9%E3%83%88%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%8F%8F%E7%94%BB%E3%81%AF%E5%80%A4%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E6%B8%A1%E3%81%97%E3%81%A6%E6%8F%8F%E7%94%BB%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%93%E3%81%AE%E9%A0%BB%E5%BA%A6%E5%88%86%E5%B8%83%E3%81%AE%E5%BD%A2%E3%82%92%E9%96%A2%E6%95%B0%E3%81%A7%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%81%AF%E3%80%81%E3%81%BE%E3%81%9A%E3%83%87%E3%83%BC%E3%82%BF%E7%82%B9%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%81%93%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A7%E3%81%AF%E3%80%81%60marimo_lib.util.plot.get_scatter_from_1d%60%E3%81%A7%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%AFBin%E3%81%AE%E4%B8%AD%E5%BF%83%E5%80%A4%E3%81%A8%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E6%95%B0%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%80%82%0A%0A%20%20%20%20%E5%BC%95%E6%95%B0%E3%81%AB%E3%81%AFBin%E6%95%B0%E3%81%A8%E6%8F%8F%E7%94%BB%E7%AF%84%E5%9B%B2%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E5%9B%B3%E3%81%A8%E5%AE%8C%E5%85%A8%E4%B8%80%E8%87%B4%E3%81%95%E3%81%9B%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81%E4%B8%8A%E8%A8%98%E3%81%AE%E5%BC%95%E6%95%B0%E3%82%82%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AB%E3%81%AF%60marimo_lib.analisys.fit.fit_function%60%E3%81%A7%E3%81%8A%E3%81%93%E3%81%AA%E3%81%86%E3%80%82%0A%0A%20%20%20%20%E4%B8%AD%E8%BA%AB%E3%81%AF%60scipy%60%E3%81%AE%60curve_fit%60%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E5%BF%85%E9%A0%88%E3%81%AE%E5%BC%95%E6%95%B0%E3%81%AF%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%81%A8%E3%83%95%E3%82%A3%E3%83%83%E3%83%88%E3%81%95%E3%81%9B%E3%82%8B%E9%96%A2%E6%95%B0%0A%0A%20%20%20%20%E5%88%9D%E6%9C%9F%E5%80%A4%E3%82%84%E5%A2%83%E7%95%8C%E3%82%82%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(GLOBAL_FIG_WIDTH%3A%20int)%3A%0A%20%20%20%20_fig%20%3D%20make_subplots(%0A%20%20%20%20%20%20%20%20rows%3D1%2C%20cols%3D1%2C%0A%20%20%20%20%20%20%20%20vertical_spacing%3D0.15%2C%0A%20%20%20%20%20%20%20%20horizontal_spacing%3D0.15%2C%0A%20%20%20%20%20%20%20%20subplot_titles%3D(%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22Histo1%22%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%0A%20%20%20%20_h%20%3D%20np.random.normal(loc%3D0%2C%20scale%3D1%2C%20size%3D100000)%0A%0A%20%20%20%20_x%2C%20_y%20%3D%20molib.plot.get_scatter_from_1d(_h%2C%20bin%3D200%2C%20range%3D%5B-4%2C%204%5D)%0A%20%20%20%20_v%2C%20_e%20%3D%20moana.fit.fit_function(%5B_x%2C%20_y%5D%2C%20moana.fit.gauss%2C%20debug%3DTrue)%0A%0A%20%20%20%20_x%20%3D%20np.linspace(-4%2C4%2C100)%0A%20%20%20%20_y%20%3D%20moana.fit.gauss(_x%2C%20*_v)%0A%0A%20%20%20%20molib.plot.add_sub_plot(%0A%20%20%20%20%20%20%20%20_fig%2C%201%2C%201%2C%0A%20%20%20%20%20%20%20%20data%3D%5B_h%5D%2C%0A%20%20%20%20%20%20%20%20func%3Dmolib.plot.go_Histogram%2C%0A%20%20%20%20%20%20%20%20xrange%3D%5B-4%2C%204%2C%200.04%5D%2C%0A%20%20%20%20%20%20%20%20dataname%3D%22sample%22%0A%20%20%20%20)%0A%0A%20%20%20%20molib.plot.add_sub_plot(%0A%20%20%20%20%20%20%20%20_fig%2C%201%2C%201%2C%0A%20%20%20%20%20%20%20%20data%3D%5B_x%2C%20_y%5D%2C%0A%20%20%20%20%20%20%20%20func%3Dmolib.plot.go_Scatter%2C%0A%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20width%3D2%2C%0A%20%20%20%20%20%20%20%20dataname%3D%22fit%22%0A%20%20%20%20)%0A%0A%20%20%20%20_fig.update_layout(height%3D400%2C%20width%3DGLOBAL_FIG_WIDTH%2C%20showlegend%3DTrue)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E4%BA%8C%E6%AC%A1%E5%85%83%E9%A0%BB%E5%BA%A6%E5%88%86%E5%B8%83%E3%81%AE%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%0A%0A%20%20%20%20%E5%90%8C%E6%A7%98%E3%81%AB%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%A6%E4%BA%8C%E6%AC%A1%E5%85%83%E7%9B%B8%E9%96%A2%E3%81%AE%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%82%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(GLOBAL_FIG_WIDTH%3A%20int)%3A%0A%20%20%20%20_x%20%3D%20np.random.uniform(-1%2C%201%2C%2050000)%0A%20%20%20%20_y%20%3D%20moana.fit.pol1(_x%20%2C%20b%3D0.0%20%2C%20a%3D-1.0)%0A%0A%20%20%20%20_nx%20%3D%20np.random.normal(0%2C%200.1%2C%20size%3D_x.shape)%0A%20%20%20%20_ny%20%3D%20np.random.normal(0%2C%200.1%2C%20size%3D_y.shape)%0A%0A%20%20%20%20_x%20%3D%20_x%20%2B%20_nx%0A%20%20%20%20_y%20%3D%20_y%20%2B%20_ny%0A%0A%20%20%20%20_fig%20%3D%20make_subplots(%0A%20%20%20%20%20%20%20%20rows%3D1%2C%20cols%3D2%2C%0A%20%20%20%20%20%20%20%20vertical_spacing%3D0.15%2C%0A%20%20%20%20%20%20%20%20horizontal_spacing%3D0.15%2C%0A%20%20%20%20%20%20%20%20subplot_titles%3D(%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22Histo1%22%2C%20%22Histo2%22%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%0A%20%20%20%20molib.plot.add_sub_plot(%0A%20%20%20%20%20%20%20%20_fig%2C%201%2C%201%2C%0A%20%20%20%20%20%20%20%20data%3D%5B_x%2C%20_y%5D%2C%0A%20%20%20%20%20%20%20%20func%3Dmolib.plot.go_Heatmap%0A%20%20%20%20)%0A%0A%20%20%20%20molib.plot.add_sub_plot(%0A%20%20%20%20%20%20%20%20_fig%2C%201%2C%202%2C%0A%20%20%20%20%20%20%20%20data%3D%5B_x%2B_y%5D%2C%0A%20%20%20%20%20%20%20%20func%3Dmolib.plot.go_Histogram%2C%0A%20%20%20%20%20%20%20%20xrange%3D%5B-0.5%2C%200.5%2C%200.005%5D%0A%20%20%20%20)%0A%0A%20%20%20%20_fpv%2C%20_fpe%20%3D%20moana.fit.fit_function(%5B_x%2C%20_y%5D%2C%20moana.fit.pol1%2C%20debug%3DFalse)%0A%20%20%20%20_fpx%20%3D%20np.linspace(-1.2%2C%201.2%2C%202)%0A%20%20%20%20_fpy%20%3D%20moana.fit.pol1(_fpx%2C%20*_fpv)%0A%0A%20%20%20%20_x%2C%20_y%20%3D%20molib.plot.get_scatter_from_1d(_x%2B_y%2C%20bin%3D200%2C%20range%3D%5B-0.5%2C%200.5%5D)%0A%20%20%20%20_fgv%2C%20_fge%20%3D%20moana.fit.fit_function(%5B_x%2C%20_y%5D%2C%20moana.fit.gauss%2C%20debug%3DFalse)%0A%20%20%20%20_fgx%20%3D%20np.linspace(-0.5%2C%200.5%2C%20200)%0A%20%20%20%20_fgy%20%3D%20moana.fit.gauss(_fgx%2C%20*_fgv)%0A%0A%20%20%20%20molib.plot.add_sub_plot(%0A%20%20%20%20%20%20%20%20_fig%2C%201%2C%201%2C%0A%20%20%20%20%20%20%20%20data%3D%5B_fpx%2C%20_fpy%5D%2C%0A%20%20%20%20%20%20%20%20func%3Dmolib.plot.go_Scatter%2C%0A%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20width%3D2%2C%0A%20%20%20%20%20%20%20%20color%3D'red'%0A%20%20%20%20)%0A%0A%20%20%20%20molib.plot.add_sub_plot(%0A%20%20%20%20%20%20%20%20_fig%2C%201%2C%202%2C%0A%20%20%20%20%20%20%20%20data%3D%5B_fgx%2C%20_fgy%5D%2C%0A%20%20%20%20%20%20%20%20axes_title%3D%5B'sum'%2C%20'counts'%5D%2C%0A%20%20%20%20%20%20%20%20func%3Dmolib.plot.go_Scatter%2C%0A%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20width%3D2%2C%0A%20%20%20%20%20%20%20%20color%3D'blue'%0A%20%20%20%20)%0A%0A%20%20%20%20molib.plot.align_colorbar(_fig%2C%2020)%0A%0A%20%20%20%20_fig.update_layout(height%3D500%2C%20width%3DGLOBAL_FIG_WIDTH%2C%20showlegend%3DTrue)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
f957f4fc3e6653e7d38926cb71de31d7