Skip to content

Repository files navigation

Kobs-Plotter

A desktop application for scientific nonlinear curve fitting and publication-ready visualization. Load your Excel file, select a model, and get fitted Parameters with goodness-of-fit statistics — no coding required.

kobs-plotter demo image

System Architecture

System Architecture for Kobs-Plotter


Installation

Kobs-Plotter is distributed as a command-line tool via uv. If you don't have uv installed, follow the official installation guide first — it takes under a minute.

Recommended — install from GitHub

Open your terminal (PowerShell on Windows) and run:

uv tool install https://github.com/pdadhikary/kobs_plotter

That's it. uv handles all dependencies automatically.

Manual — install from source

Use this only if you want to modify the source code.

  1. Download the latest release from the Releases page and extract the zip, or clone the repository:
   git clone https://github.com/pdadhikary/kobs_plotter.git
   cd kobs_plotter
  1. Install the tool:
   uv tool install .

Running the app

Once installed, launch the app from any terminal:

kobs-plotter

Usage

1. Data Source

Click Browse to select your Excel file. Once loaded, choose the sheet where your data lives, then select the X column (independent variable) and Y column (dependent variable) from the dropdowns.


2. Data Transformation (optional)

You can preprocess your data before fitting using one-line NumPy expressions.

Field Description
x' = Transformation applied to the X series
y' = Transformation applied to the Y series

Example: To fit a ln(y) vs x plot, leave x' = empty and set y' = np.log(y).

Note: Use standard NumPy syntax here (e.g. np.log(x), np.sqrt(x)). These fields accept any valid single-line NumPy expression.


3. Model Selection

Choose a predefined model from the dropdown (Exponential, Linear, etc.), or select Custom to define your own.

Custom model fields

Parameters

A comma-separated list of parameter symbols (everything except x and y). You can optionally set initial values using =:

A=np.min(y), B=np.max(y), k

Parameters without an initial value (like k above) default to 1.0. Initial values can significantly impact fit quality — if the fit looks wrong, try providing better starting estimates.

Formula

Define your model expression in standard mathematical notation:

B - A * exp(-k * x)

Important: Do not use NumPy functions here (no np.exp, np.log etc.). Use plain mathematical functions — exp, log, sqrt, sin, cos — and the fitting engine handles the rest.


4. Plot Labels (optional)

Customise the appearance of your output plot. All text fields support LaTeX expressions for mathematical symbols — see this LaTeX reference for syntax.

Field Description
Title Title displayed above the plot
X axis X axis label
Y axis Y axis label
Point color Color of the scatter data points (e.g. black, red, #FF5733)
Line color Color of the fitted trendline
Line style Style of the trendline (see below)

Line styles:

Value Style
- Solid
-- Dashed
-. Dash-dot
: Dotted

5. Generating the plot

The following fields are required before plotting:

  • File path and sheet name
  • X and Y columns
  • Parameters and formula

Once all required fields are filled, press Generate Plot. A plot window will open showing your data as scatter points with the fitted trendline overlaid.

The Parameters and Goodness of Fit sections in the main window display the results of the analysis — optimal parameter values, standard errors, R², adjusted R², RMSE, and more. These values can be selected and copied directly into another file.


6. Iterating

You can modify any field at any time and press Generate Plot again — the plot window updates in place without needing to restart. This makes it easy to experiment with different models, transformations, or initial parameter values without losing your other settings.


Built with

Library Purpose
PySide6 GUI framework
NumPy Numerical operations and data transforms
Pandas Excel file loading
SciPy Curve fitting and statistics
Matplotlib Plot rendering

Citation

If you use Kobs-Plotter in your research, please cite it as:

Adhikary, P. D. (2026). Kobs-Plotter (Version 0.5.0) [Software]. GitHub. https://github.com/pdadhikary/kobs_plotter

@software{adhikary2025kobsplotter,
    author       = {Adhikary, Prachurya Deepta},
    title        = {Kobs-Plotter: A desktop application for nonlinear curve fitting of tabular data},
    year         = {2026},
    publisher    = {GitHub},
    version      = {0.5.0},
    url          = {https://github.com/pdadhikary/kobs_plotter}
}

Note: Please replace year with the year of the version you used, and add a version field with the specific release version from the Releases page.

Citing dependencies

The following libraries underpin the core computation — many journals require these to be cited alongside the software that uses them:

About

A desktop application for scientific curve fitting and publication-ready visualization

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages