PhysPlot: Advanced Plotting Made Simple
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
.xrdmland CSV, EDAX EDS maps and SmartQuant tables, EMSA.msaspectra, PHI XPS scans, Rigaku.rasscans, 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
physplotcommand 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.
Build Modules with an AI Assistant: the steps, which guide to use, and an example request for every kind of module.
AI Module Examples: the tested example of every kind, with sample data and the resulting plots.
Extension Guides: each kind of module explained, for writing one by hand.
Project links
Contents
- Installation
- PhysPlot GUI Walkthrough
- 1. Main Window Overview
- 2. Importing Data
- 3. Choosing Column Roles
- 4. Transforming a Column
- 5. Generating, Editing, and Templating a Plot
- 6. Adding Fit Functions
- 7. Building and Replaying the Protocol Sequence
- 8. File Loaders for Instrument Formats
- 9. Exporting Processed Data
- Complete GUI Workflow Summary
- Notes for Extending PhysPlot
- Video Tutorials
- Sequence Walkthrough: Record, Save, Reuse and Bulk-Run
- UI Reference
- Data Entry
- Data Import
- Data Manipulation
- Protocol Sequences
- Plot Generation
- Curve Fitting
- Plot Customization
- Data Export
Build Modules with AI
Extend and Reference