Other Projects

Derivative CalculatorTools

RouteFinder Ping Modeller Numerical Differentiation Running MeanThis Multifunctional Graph Plotter is an iPython Jupyter Notebook copmrising of several functions and cells which can be used to plot .csv datafiles based on user inputs. Current features of the notebook allow the user to plot multiple series of data with errorbars, styling and labelling each, along with:

- Choosing axis type (linear, log, etc.)
- Fitting a weighted straight line
- Fitting a polynomial curve with a χ
^{2}value - Plotting the polynomial residuals and fitting a Gaussian curve

The script uses logic to suggest appropriate orders of polynomial for the user to choose from; this works based on the fact that the
χ^{2} value should approach 1 for a good fit. It calculates a χ^{2} value for polynomial orders 1 through 10 and
plots a graph of χ^{2} against order for the user to visualise the most appropriate choice. The order suggested to the user is
the order corresponding to the first value of χ^{2} to fall below a certain precision (which can be changed by a user if they
wish by editing the code cell).

In circumstances where the random error is inaccurately estimated on data, χ^{2} will approach a value higher than 1 and thus
the script's logic breaks down. To counteract this, the user can use the graph of χ^{2} vs. order to look for where it starts
to plateau, i.e. the value changes in only small amounts for increasing the order on the polynomial. This allows users to avoid overfitting.

After each step of plotting the graph, e.g. bare plot, fitted line, there is a save cell giving the user the opportunity to save the figure
to file's local directory after giving it a name.

The libraries used in the notebook include