Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gjjvdburg/labella.py
Python 3 clone of labella.js that generates SVG and TikZ PDF output
https://github.com/gjjvdburg/labella.py
python3 tikz tikz-figures tikz-images timeline-chart
Last synced: 3 months ago
JSON representation
Python 3 clone of labella.js that generates SVG and TikZ PDF output
- Host: GitHub
- URL: https://github.com/gjjvdburg/labella.py
- Owner: GjjvdBurg
- License: apache-2.0
- Created: 2016-02-28T19:24:02.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-12-31T10:02:14.000Z (about 1 year ago)
- Last Synced: 2024-06-11T17:08:06.074Z (8 months ago)
- Topics: python3, tikz, tikz-figures, tikz-images, timeline-chart
- Language: Python
- Homepage:
- Size: 339 KB
- Stars: 65
- Watchers: 8
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
==========
labella.py
==========.. image:: https://github.com/GjjvdBurg/labella.py/workflows/build/badge.svg
:target: https://github.com/GjjvdBurg/labella.py/actions?query=workflow%3Abuild.. image:: https://badge.fury.io/py/labella.svg
:target: https://pypi.org/project/labella.. image:: https://pepy.tech/badge/labella
:target: https://pepy.tech/project/labellaLabella.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:
.. image:: https://raw.githubusercontent.com/GjjvdBurg/labella.py/master/examples/timeline_kit_3.png
:alt: Example of Labella.py output for a timeline
:width: 100%
:align: centerLinear scale:
.. image:: https://raw.githubusercontent.com/GjjvdBurg/labella.py/master/examples/timeline_kit_5.png
:alt: Example of Labella.py output for a timeline
:width: 100%
:align: centerUsage
=====
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 `_.