icplot
This is a library used at The Irish Centre for High End Computing (ICHEC) for generating plots, diagrams and other graphics for technical documents.
Scope
The library is frozen to what its consumers use — the ichec-handbook
build tool and ichec-flow. That means converter, renderer, theme and
graph: fixes and maintenance yes, new capability no.
The geometry/mesh 3D and OpenFOAM code has moved to
icmesh, taking
VTK and scipy with it — including VTK plot output, which is now
icmesh.plot. Install icmesh if you want it.
Features
The project has three primary modules:
converter: Converts between image formats, such as pdf, svg and png
renderer: Render text based inputs as svg, pdf or png images or videos
theme: Generate and apply themes from a design system
Converter
To covert between image formats you can do:
icplot convert --source my_image.svg --target my_image.png
Supported conversions are:
- svg -> png
- svg -> pdf
- pdf -> png
Renderer
Render a range of text based formats to images or videos. For example,
icplot render --file uml_diagram.puml
renders the PlantUML file to png and svg.
Supported render inputs and targets are:
- PlantUml
- SVG
- PNG
- Latex/Tikz
- SVG
- PNG
- Mermaid
- SVG
- PNG
- Custom JSON
- Graph
- Backends:
- Matplotlib
- Output formats:
- SVG
- PNG
- MP4
- Backends:
- Tree
- Backends:
- Graphviz
- Output formats:
- SVG
- PNG
- Backends:
- Gantt
- Backends:
- Cairo
- PgfGantt
- Output formats:
- SVG
- PNG
- Backends:
- Scene
- Backends:
- Cairo
- Output formats:
- SVG
- Backends:
- Graph
Themes
The library supports themeing with an Angular Material 3 motivated design system. Plots can be themed by adapting a version of theme.json included in this module's source. Currently Tikz and PlantUML support themeing.
Installation
The package is available on PyPI. The core install is deliberately light — it does not pull the heavy rendering backends, so consumers that only need part of the library (e.g. a docs build that just converts svg to png) stay small:
pip install icplot
Backends are opt-in via extras:
| Extra | Pulls | Enables |
|---|---|---|
cairo |
CairoSVG | svg → png / pdf conversion, and vector scene drawing |
imagemagick |
wand | pdf → png conversion (falls back to the magick CLI) |
plot |
matplotlib | 2D plotting (renderer.graph, charts) |
video |
moviepy | video assembly (renderer.video) |
all |
all of the above | everything |
For example, pip install icplot[cairo] for svg conversion, or
pip install icplot[all] for the full toolkit. The native cairo and
imagemagick system libraries are also required for those backends; on Mac:
brew install imagemagick cairo
Copyright
Copyright 2026 Irish Centre for High End Computing
The software in this repository can be used under the conditions of the MIT license, which is available for reading in the accompanying LICENSE file.
Release files for icplot 0.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| icplot-0.6.3.tar.gz | 34.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icplot-0.6.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.5 kB
Release files / icplot-0.6.3.tar.gz
| Download URL | icplot-0.6.3.tar.gz |
|---|---|
| Size | 34.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b22f9a0b8a597266c6071fa0099afc7297d0862a1ba20b5db078e20174fe7134
|
|
BLAKE2b-256 checksum How to use checksums |
cd487f0396b29ce9cc3fc1f6a666c874c5966257a6ac8c84a6e5d5ba11b40830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / icplot-0.6.3-py3-none-any.whl
| Download URL | icplot-0.6.3-py3-none-any.whl |
|---|---|
| Size | 38.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
97b04c684d9dd86992ca967b12a6e51e2d8d562e61a2cbdf536dfc8ae201f0ec
|
|
BLAKE2b-256 checksum How to use checksums |
34f42d20f66351fc7b2256d60eded38766a369b3f916bd7ebf2c8734d4e0a578
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|