Skip to main content

A Matplotlib-like interface for generating Tikz and Pgfplots figures

Project description

Pykz

A Python library to generate tikz code

Examples PyPI GitHub license

Generate beautiful, publication-ready figures with the power of Tikz and pgfplots, with a comfortable, familiar Python syntax.

pykz aims to provide a syntax similar to matplotlib, but with the possibility of directly generating (and controlling!) your tikz code.

The benefit over alternatives like tikzplotlib is that pykz was designed explicitly with pgfplots in mind, whereas the goal of tikzplotlib is to map matplotlib concepts to pgfplots. The latter is arguably more convenient if you already have code for matplotlib, but it often still requires manual tweaking to the resulting tex-files. pykz aims to provide more control over the final output directly in Python, so no manual tweaking is required afterwards.

Usage

Basic plotting

Pykz has a simple, matplotlib-like interface for basic plotting.

import numpy as np
import pykz

x = np.linspace(0, 10, 100)
y = np.sin(x)

pykz.plot(x, y)

# (Optional) save the tikz code to a file.
pykz.save("test-basic-plot.tex")

# Save the Tikz code to a temporary file, compile it, and open the pdf in the default viewer.
pykz.preview()
Sample output

Using Tikz primitives

Alternatively, you can use standard TikZ drawing primitives, without using pfgplots. Options passed to the TikZ command are passed as keyword arguments.

import pykz

rect = pykz.rectangle((-1, -1), (1, 1))
circle = pykz.circle((2, 0), (1), fill="red")

rect2 = pykz.rectangle((1, 1), (2, 3), fill="cyan")

# Dump the generated tikz code to the stdout.
print(pykz.dumps())

# Save the Tikz code to a temporary file, compile it, and open the pdf in the default viewer.
pykz.preview()

out:

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
\draw(-1.000000000, -1.000000000) rectangle (1.000000000, 1.000000000);
\draw[fill=red](2.000000000, 0.000000000) circle (1);
\draw[fill=cyan](1.000000000, 1.000000000) rectangle (2.000000000, 3.000000000);

\end{tikzpicture}
\end{document}
Sample output

More examples can be found in the online documentation.

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

pykz-0.2.3.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

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

pykz-0.2.3-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file pykz-0.2.3.tar.gz.

File metadata

  • Download URL: pykz-0.2.3.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pykz-0.2.3.tar.gz
Algorithm Hash digest
SHA256 aef4a7a278ac3f5cf27d54b148cf4336ddb25ed2b6d4a525e51ffdbd97b700c5
MD5 a7773e4c9de693d943d59e70eff03656
BLAKE2b-256 d961a0aca560c609fac26e3d7a7dfa19dc3a8764c4be8774689117cdfeef9de2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pykz-0.2.3.tar.gz:

Publisher: wheels.yaml on Mathijssch/pykz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pykz-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: pykz-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 38.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pykz-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 adc8f6affe74fca9535746a4a56be86efbaf9df13c1e583d65bcfff0996e9d73
MD5 b607ee4bae11376cf06973bfb72bc33e
BLAKE2b-256 6151c736a6ef18fe5e79d562fd3f1f01e5a6120c3514b7d84c70a50832dbae7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pykz-0.2.3-py3-none-any.whl:

Publisher: wheels.yaml on Mathijssch/pykz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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