tikzfigure
Python interface to generate (readable) Tikz figures.
Install
Create and activate python environment, then install tikzfigure with
pip install tikzfigure
Examples
Generate tikz-figures with Python API
Generate a simple TikZ figure with nodes and arrows, see Figure 1.
from tikzfigure import TikzFigure
fig = TikzFigure()
n1 = fig.node(x=0, y=0, shape="circle", fill="blue!40!green", content="Tikz")
n2 = fig.node(x=2, y=0, shape="circle", fill="purple!40!orange", content="Figure")
fig.draw([n1, n2], line_width=2, arrows="->", color="gray")
fig.variable("R", 1.0)
with fig.loop("angle", range(40, 340, 20)) as loop:
loop.node(
x=r"\R*cos(\angle)",
y=r"\R*sin(\angle)",
shape="circle",
fill="red!50",
)
fig.show()
For segment-local TikZ options, you can also build paths fluently with
Node.to(...) and keep path-wide styling on fig.draw(...).
You can also save the figure as a .tikz file or print the LaTeX code:
print(fig)
% --------------------------------------------- %
% Tikzfigure generated by tikzfigure v0.2.1 %
% https://github.com/max-models/tikzfigure %
% --------------------------------------------- %
\begin{tikzpicture}
\pgfmathsetmacro{\R}{1.0}
\node[shape=circle, fill=blue!40!green] (node0) at ({0}, {0}) {Tikz};
\node[shape=circle, fill=purple!40!orange] (node1) at ({2}, {0}) {Figure};
\draw[color=gray, line width=2, arrows=->] (node0) to (node1);
\foreach \angle in {40,60,80,100,120,140,160,180,200,220,240,260,280,300,320}{
\node[shape=circle, fill=red!50] () at ({\R*cos(\angle)}, {\R*sin(\angle)}) {};
}
\end{tikzpicture}
Note that to visualize the plots in a popup or in jupyterlab, install with
pip install "tikzfigure[vis]"
Drawing without creating a figure
For quick scripts and notebooks you can skip the TikzFigure object
altogether. The module-level functions draw on an implicit current figure
that is created the first time you use one, much like matplotlib.pyplot:
import tikzfigure as tf
tf.draw([(0, 0), (1, 1), (2, 0)], arrows="->")
tf.circle((1, 1), radius=0.3, fill="cyan!40")
tf.show()
Use tf.figure() to start a new figure, tf.gcf() to get hold of the current
one, tf.scf(fig) to make an existing figure current, and tf.close() to
throw the current figure away. Anything you can do on a TikzFigure is
available as a module-level function.
The explicit API remains the recommended one for larger figures, since it is the only way to work on several figures at once.
IPython Magic Commands
tikzfigure includes IPython magic commands for compiling TikZ figures directly in Jupyter notebooks!
Load the extension:
%load_ext tikzfigure.ipython
Then use the %%tikz cell magic:
%%tikz
\begin{tikzpicture}
\draw[thick, blue] (0,0) circle (2cm);
\node at (0,0) {Hello TikZ!};
\end{tikzpicture}
See tutorials for more examples!
Metadata
Release files for tikzfigure 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tikzfigure-0.4.0.tar.gz | 197.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tikzfigure-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 437.4 kB
Release files / tikzfigure-0.4.0.tar.gz
| Download URL | tikzfigure-0.4.0.tar.gz |
|---|---|
| Size | 197.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
815ba82aebf65bf08d3ba9cc47354b53c5a022b5f21ce23190b1f1d05244a5bc
|
|
BLAKE2b-256 checksum How to use checksums |
5f33f0af10429bafe5f3d6c8c7491cbf093f6acd062b51f41a364514575019c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / tikzfigure-0.4.0-py3-none-any.whl
| Download URL | tikzfigure-0.4.0-py3-none-any.whl |
|---|---|
| Size | 239.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2edbe9bb2b7eda6853f5ca1f18630f28001c56c7c4e371e161540ac913d857ad
|
|
BLAKE2b-256 checksum How to use checksums |
44d7760646d146fb479f6bac9fd30b18ddff3f738eb967f4943de77f4b5c30d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency log