Grapher Wiki
Complete user guide and technical reference for all Grapher features.
Getting Started
Installation
Grapher is distributed as three Linux package formats. Choose the format that fits your workflow:
- AppImage — self-contained, runs anywhere. No installation required. Just
chmod +xand execute. - .deb — integrates with Debian/Ubuntu package manager. Recommended for Ubuntu 22.04+ users.
- .rpm — for Fedora, openSUSE, and RHEL-family distributions.
AppImage Quick Start
Debian / Ubuntu Installation
First Launch
On first launch, Grapher opens a welcome screen with a file picker. You can load any CSV or Excel file immediately. The app stores your settings and recent sessions in ~/.config/grapher/.
Loading Data
Supported Formats
- CSV — comma, semicolon, or tab delimited. Auto-detects delimiter.
- Excel (.xlsx / .xls) — reads all sheets; sheet selector appears for multi-sheet files.
- .grapher — Grapher's own encrypted compressed session package.
Loading a File
Use File → Open or drag-and-drop a file onto the main window. Grapher uses a Rust streaming parser to handle files with millions of rows without blocking the UI. Progress is shown in the status bar.
Column Auto-Detection
Grapher automatically detects column data types:
- Numeric — integer or float values become plottable series.
- Timestamp — ISO 8601 or common date formats parsed as the X axis automatically.
- String — categorical columns used for grouping or labeling.
Large File Performance
Grapher uses a Rust-based decimation engine to maintain 60 FPS rendering even for datasets with millions of rows. The engine computes local min/max envelopes at each pixel resolution, so you always see the full signal shape without sacrificing performance.
Plot Configuration
Chart Types
- Line — continuous time-series data. Supports WebGL GPU acceleration for >100k points.
- Scatter — individual data points. Uses
scattergl(WebGL) for 1M+ point datasets. - Bar — categorical comparisons. Grouped and stacked variants available.
Assigning Columns to Axes
The right-side panel shows all available columns. Drag a column to the X or Y axis drop zone, or use the column dropdown menus. Multiple Y columns can be added to the same chart as separate trace lines.
Trace Customization
Each trace can be independently styled:
- Color — click the color swatch to open the color picker.
- Line width — drag the width slider (0.5px to 8px).
- Marker style — circle, square, diamond, cross, or none.
- Opacity — adjust per-trace transparency for overlapping data.
- Visibility — toggle the eye icon to show/hide a trace without removing it.
Axis Formatting
Right-click an axis label to access formatting options: numeric precision, scientific notation, log scale, and custom axis label text. Axis ranges can be locked or set to auto-scale.
Dual Y-Axis Plotting
Overview
Grapher supports fully independent left (Y1) and right (Y2) Y-axes on the same chart. This is ideal for comparing sensors with different units or value ranges — for example, plotting temperature and pressure on the same time axis.
Enabling a Second Y-Axis
Select any trace in the trace list panel and toggle Y-Axis → Right (Y2). The trace immediately migrates to the right axis with its own independent scale.
Independent Scaling
Each axis scales independently. You can lock or manually set ranges on either axis without affecting the other. Both axes can use different formatting (e.g., Y1 in linear scale, Y2 in log scale).
A-Scan DSP Engine
What is A-Scan?
An A-Scan is a time-domain ultrasonic signal used in non-destructive testing (NDT). Grapher includes a full DSP (Digital Signal Processing) engine specifically designed for analyzing ultrasonic A-Scan waveforms in industrial inspection workflows.
Enabling A-Scan Mode
Navigate to Analysis → A-Scan DSP. Select the column containing your ultrasonic time-domain signal amplitude data. Grapher auto-configures the DSP pipeline.
DSP Features
- Peak Detection — configurable threshold-based peak finder with minimum prominence and distance settings.
- Signal Envelope — Hilbert transform envelope extraction displayed as an overlay trace.
- FFT Spectrum — Fast Fourier Transform frequency analysis plotted in a companion panel with amplitude in dB.
- Bandpass Filter — configurable low-pass and high-pass frequency cutoffs applied in real-time.
- Gate & TOF — set inspection gates and compute Time-of-Flight measurements between gates.
Exporting DSP Results
DSP results (peak table, envelope data, FFT spectrum) can be exported as CSV or included in the encrypted HTML report export.
Encrypted HTML Report Export
Overview
Grapher can export your entire session — charts, data, and annotations — as a standalone interactive HTML file. The report is fully self-contained (no internet required) and can be opened in any modern browser.
Exporting a Report
Go to File → Export → Interactive HTML Report. Choose your encryption options and click Export.
AES-256 Encryption
Reports are encrypted client-side using the Web Crypto API (AES-256-GCM). The encryption key is derived from a password using PBKDF2 with 100,000 iterations. Without the correct password, the report data cannot be decrypted — even by the server serving the file.
- No password — report is plaintext HTML, viewable by anyone with the file.
- App master key — encrypted with Grapher's embedded application key. Only Grapher instances can decrypt (for internal use).
- Custom password — you set a password; the recipient must enter it to view the report.
Sharing Reports
The exported .html file is completely self-contained — share it via email, file transfer, or any storage system. Recipients open it in a browser, enter the password, and interact with the full chart (zoom, pan, tooltips).
.grapher Package Format
What is a .grapher file?
A .grapher file is Grapher's native session format. It bundles your dataset, chart configuration, axis settings, trace styles, and any DSP results into a single compressed and encrypted file.
Compression
The package uses Gzip streaming compression achieving up to 90% size reduction on typical CSV datasets. A 10 MB CSV typically becomes ~1 MB when saved as .grapher.
Encryption
Like HTML reports, packages are encrypted with AES-256-GCM. By default the app master key is used (seamless — no password needed). You can optionally lock the package with a custom recipient password for sharing with specific users.
Saving a Session
Use File → Save Session (or Ctrl+S). Choose Save as .grapher Package and set an optional recipient password.
Loading a Package
Drag-and-drop a .grapher file onto the app window, or use File → Open. If password-locked, Grapher prompts for the password. Once unlocked, your full session is restored including all charts, traces, and settings.
.grapher files are cross-version compatible. Sessions saved in earlier versions load correctly in newer Grapher releases.OTA Updates (Over-the-Air)
How it Works
Grapher checks for updates at startup by querying the Cloudflare Worker endpoint. If a newer version is available, a subtle notification appears in the title bar. The update modal shows release notes and a one-click install button.
AppImage Update Flow
AppImage users get the smoothest experience:
- Grapher downloads the new
.AppImagein the background with a live progress bar. - Once complete, the Rust backend overwrites the current executable in-place (no root required).
- A Restart to Apply button appears. Clicking it relaunches Grapher automatically.
- The entire update takes about 30 seconds on a typical connection.
Debian / Ubuntu (.deb) Update Flow
For .deb users, automatic binary replacement is not possible (the package manager owns the installed files). Instead:
- The update modal shows a copy-to-clipboard install command.
- A
sudo dpkg -i grapher_X.X.X_amd64.debcommand is pre-filled. - Paste into your terminal to update. Grapher detects the new version on next launch.
Update Privacy
The update check sends only your current version string and architecture. No usage data, session content, or personal information is ever transmitted.
Keyboard Shortcuts
File
View
Chart Interaction
Traces
System Requirements
Minimum Requirements
- OS: Linux x86_64
- glibc: 2.31 or newer (Ubuntu 20.04+, Debian 11+, Fedora 33+)
- Display: X11 or Wayland (via XWayland)
- RAM: 512 MB (2 GB recommended for large datasets)
- GPU: Any GPU with OpenGL 2.1+ for WebGL acceleration
- Disk: 200 MB free space
Tested Distributions
- Ubuntu 22.04 LTS (Jammy)
- Ubuntu 24.04 LTS (Noble)
- Debian 12 (Bookworm)
- Fedora 39+
- Linux Mint 21+
- Pop!_OS 22.04
- Arch Linux (rolling)
Wayland Notes
Grapher runs natively on Wayland-based desktops via XWayland. For pure Wayland support without XWayland, set the environment variable: