Skip to main content

Python clone of Labella.js that supports TikZ output

Project description

https://github.com/GjjvdBurg/labella.py/workflows/build/badge.svg

Labella.py is a Python 3 clone of labella.js that supports all the features of labella.js and addionally can generate TikZ PDF images for use in LaTeX.

Note: This package is for the most part a direct translation of the original labella.js code to Python 3. All the credit for the labella code goes to Krist Wongsuphasawat (@kristw), I only added the code that generates PDF output. Labella.py also includes code from d3 for axis scaling, and WebCola for the VPSC code (label placement optimization).

Why?

I wrote this for multiple reasons, the most important of which is that I wanted to incorporate label graphs like the ones generated by labella.js in PDF documents, but wasn’t satisfied with the PDF output generated by SVG-to-PDF converters. Additionally, it seemed like a fun way to learn some more Javascript, and learn about how labella.js works.

Screenshots

These screenshots show the PDF output generated by labella.py (converted to .png)

Time scale:

Example of Labella.py output for a timeline

Linear scale:

Example of Labella.py output for a timeline

Usage

Using labella.py is extremely similar to using labella.js. See the examples directory for examples of how to use labella.py. These examples are translations of the examples included in labella.js and in d3kit-timeline.

For ease of use only the Timeline interface is implemented, which works similar to d3kit-timeline. Here is a minimal working example for exporting to PDF:

>>> from labella.scale import LinearScale
>>> from labella.timeline import TimelineTex
>>> tl = TimelineTex([
  {'time': 1, 'text': 'Minimal'},
  {'time': 2, 'text': 'Working'},
  {'time': 3, 'text': 'Example'}
  ], options={'scale': LinearScale()})
>>> tl.export('minimal.tex')

See also the documentation here.

Installation

Labella.py is available through PyPi, so you can do:

pip install labella

to install it.

Note: Labella.py requires a working LaTeX distribution for both SVG and PDF output (see also the documentation), and has only been tested on Linux. If you run into problems, please open an issue on GitHub.

Author

Gertjan van den Burg (@GjjvdBurg).

Licensed under the Apache License Version 2.0.

Project details


Download files

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

Source Distribution

labella-0.9.8.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

labella-0.9.8-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file labella-0.9.8.tar.gz.

File metadata

  • Download URL: labella-0.9.8.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for labella-0.9.8.tar.gz
Algorithm Hash digest
SHA256 7267dbfc202cb284d2c62f35836b014886c32ce58a388df0135634e87611ed67
MD5 4ad390f6c53ddfa3dfbd022c0915246c
BLAKE2b-256 b637a0d80f57276cb17776648e728c51f33e23476bbdf5c1918501dee8dc54ba

See more details on using hashes here.

File details

Details for the file labella-0.9.8-py3-none-any.whl.

File metadata

  • Download URL: labella-0.9.8-py3-none-any.whl
  • Upload date:
  • Size: 29.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for labella-0.9.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b8c55795bcb8d7a9969a8d21516b2f1d6f05e7cb588437ca686eca39b83351b8
MD5 ec8ba16bd3cddd3bfbe40239808c4212
BLAKE2b-256 41bc2127e570282581b8be3d11bf253f8c0373bfed5a773381e3f6bfc01170be

See more details on using hashes here.

Supported by

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