PhysPlot: Advanced Plotting Made Simple

PhysPlot logo

PhysPlot is a scientific plotting and workflow automation application with a spreadsheet-first PyQt6 graphical interface. It supports importing, transforming, plotting, fitting, templating figure appearance, exporting datasets, and replaying saved protocol sequences in headless workflows.

Install on macOS with one command (details in Installation):

curl -fsSL https://raw.githubusercontent.com/MShirazAhmad/PhysPlot/main/scripts/install_macos.sh | bash

Video tutorials

Short live recordings, one per feature, are on YouTube in two playlists: PhysPlot Basics (Simple Mode) and PhysPlot Advanced (protocols, bulk runs, writing file loaders and plotter modules). Every video is listed in Video Tutorials.

Main Features

  • Spreadsheet-first data entry and import with explicit column-role dropdowns.

  • Instrument exports load directly: Malvern Panalytical .xrdml and CSV, EDAX EDS maps and SmartQuant tables, EMSA .msa spectra, PHI XPS scans, Rigaku .ras scans, TA Instruments TGA/DSC exports, JCAMP-DX spectra, and plain CSV/TXT/Excel tables.

  • Replayable protocol sequences: every import, transformation (including plugin functions such as XRD: Baseline Remove), role change, and plot is recorded and can be replayed, exported as Python, and run over whole folders.

  • Simple Mode panels for importing data, transforming columns, and generating plots.

  • Advanced Mode tabs for building and editing the protocol (Build Protocol) and running it across folders (Run Sequence).

  • Figure Editor-based editing for Basic Plotter output.

  • Reusable figure templates saved from Figure Editor > PhysPlot > Save as Template and selected from Simple Mode’s Template dropdown.

  • Custom fit functions through Figure Editor > Fitting > Add Fit Function, or a least-squares fit from the Plotter Module.

  • Backend API and physplot command line for headless use, notebooks, and bulk workflows.

  • Native Help menu links for documentation, GitHub, issue reporting, and the About dialog.

Build Modules with an AI Assistant

PhysPlot is extended with small files: a loader for a new instrument, a transformation, a plotter, a sequence, a figure template and more. You do not need to write them yourself. Every kind of module has a guide file written for AI assistants: attach it with a sample of your data to ChatGPT, Claude, Gemini or Copilot, describe what you need, and save the finished file in Documents/PhysPlot/config/<folder>/ (File → Open Config Folder), then choose File → Reload Config Modules.