Attached to this post is a simple tutorial on making your own web-based curve fitter similar to the functionality provided by
zunzun.com. The tutorial uses the Python Flask web framework. I do not have software install instructions for Mikerslop Dang Windoze version Eleventy-Twelve or whatever they call it now.
Here is the README.txt file contents:
---------------------------
Welcome to FlaskFit, a tutorial on creating
a web-based curve fitting tool with Python Flask
Step 1: Install flask, scipy and matplotlib
On Debian or Ubuntu Linux, use this command:
sudo apt-get install python-flask python-scipy python-matplotlib
Step 2: Verify software installation
On Debian or Ubuntu Linux, run the command:
python -c "import flask, scipy, matplotlib"
If there is no error message, the installation is good.
Step 3: Run test file with Flask
From a command line in the FlaskFit directory, run:
python TestInstallation.py
On the command line you should see:
* Running on
http://127.0.0.1:5000/When you open this URL you should see the message
"Everything Imports!"
Use Control-C to exit the Flask dev server.
Step 4: Run a test curve fit
From a command line in the FlaskFit directory, run:
python FlaskFit_One.py
and on the command line you should again see:
* Running on
http://127.0.0.1:5000/When you open this URL you should see a single graph
showing some data points and a fitted straight line.
Use Control-C to exit the Flask dev server.
Step 5: Celebrate
Congratulations, you are now fitting data using Flask!
Step 6: Future steps
What to do now? I suggest the following:
A) Write a Flask form to submit user data for fitting
B) Re-organize the tutorial code to separate the
fitting, graphing and HTML generation code
C) Present users with a menu selection of
available equations before submitting forms
D) Create scatterplots of the curve fitting errors
E) Use matplotlib's 3D capability to display 3D
surface plots of fitted 3D equations
F) Look at the included pyeq2 source code examples
for details on displaying fit statistics, etc.
---------------------------
Post here if you have any questions or comments, I will do my best to help.
James