Pure C++20 plotting API with a gnuplot renderer for publication-ready IEEE/AIAA figures.
- CMake >= 3.20
- C++20 compiler
gnuplot(required for final figure generation)
Install gnuplot:
# macOS
brew install gnuplot
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y gnuplot
# Fedora
sudo dnf install -y gnuplotcmake --preset dev-debug
cmake --build --preset build-debug
ctest --preset test-debugflowchart LR
A[FigureSpec / AxesSpec / SeriesSpec] --> B[Figure / Axes]
B --> C[IPlotBackend]
C --> D[GnuplotBackend]
D --> E[tmp/*.dat]
D --> F[tmp/figure.gp]
D --> G[figure.pdf / figure.svg / figure.eps]
- Configure a publication preset (
IEEE_SingleColumn,IEEE_DoubleColumn,AIAA_Column,AIAA_Page). - Set output formats to vector (
Pdf,Svg, optionalEps). - Render via
GnuplotBackendfrom your C++ executable. - Use PDF as primary submission asset.
- Cairo terminals with enhanced text
- Explicit line widths and rounded joins
- Tick formatting and outward tics
- Grid styling suitable for print
- Escaped plot labels/titles for robust script generation
./build/dev-debug/two_window_example --out out/two_window
./build/dev-debug/layout_2x2_example --out out/layout_2x2Expected outputs:
out/<name>/figures/figure.pdfout/<name>/figures/figure.svgout/<name>/figures/figure.epsout/<name>/figures/tmp/figure.gpout/<name>/figures/tmp/ax*_series*.dat
RenderResult.status values:
SuccessInvalidInputIoErrorExternalToolMissingExternalToolFailureUnsupportedFormat