Skip to main content

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 (planning#136). The geometry/mesh 3D and OpenFOAM code is still here but is scheduled to move to a module of its own, and its optional-dependency weight goes with 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
    • PDF
    • SVG
    • PNG
  • Mermaid
    • SVG
    • PNG
  • Custom JSON
    • Graph
      • Backends:
        • Matplotlib
        • VTK
      • Output formats:
        • SVG
        • PNG
        • MP4
    • Tree
      • Backends:
        • Graphviz
      • Output formats:
        • SVG
        • PNG
    • Gantt
      • Backends:
        • Cairo
        • PgfGantt
      • Output formats:
        • SVG
        • PNG
    • Scene
      • Backends:
        • Cairo
        • VTK
      • Output formats:
        • SVG
        • VTK

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
scene pycairo vector scene drawing (renderer.scene.cairo)
imagemagick wand pdf → png conversion (falls back to the magick CLI)
plot matplotlib 2D plotting (renderer.graph, charts)
vtk vtk 3D / mesh rendering (geometry.mesh)
geometry scipy geometry transforms (geometry.operations)
video moviepy video assembly (renderer.video)
all all of the above everything (previous default behaviour)

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

icplot-0.5.0.tar.gz (49.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icplot-0.5.0-py3-none-any.whl (57.1 kB view details)

Uploaded Python 3

File details

Details for the file icplot-0.5.0.tar.gz.

File metadata

  • Download URL: icplot-0.5.0.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for icplot-0.5.0.tar.gz
Algorithm Hash digest
SHA256 846983485c8f3f86426127e96443b3864f43d4c5f2aebcbc74fb8ff595f98bae
MD5 969c6bb59eaeebd074274ed38efad25f
BLAKE2b-256 4382dbcbdc72e6dc4e4932d14909e9cd7fb83ef873210b3dfb029daaf37e52d1

See more details on using hashes here.

File details

Details for the file icplot-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: icplot-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 57.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for icplot-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47926180d6ecd73e0763e9f0164f2d5f6a256f241b8a9a9befeef36306aa2fc4
MD5 c8d748159431908c7d72434bb4a3b4b6
BLAKE2b-256 34f33700d3aa4a17a189dd29aae6bb6c76d41b991200cd03a5870f240bb70522

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page