PGFPlotsX is a Julia package for creating publication quality figures using the LaTeX library PGFPlots as the backend. PGFPlots has extensive documentation (pdf) and a rich database of answered questions on places like stack overflow and tex.stackexchange. In order to take advantage of this, the syntax in PGFPlotsX is similar to the one written in
tex. It is therefore, usually, easy to translate a PGFPlots example written in
tex to PGFPlotsX Julia code. The advantage of using PGFPlotsX.jl over writing raw LaTeX code is that it is possible to use Julia objects directly in the figures. Furthermore, the figures can be previewed in notebooks and IDE's, like julia-vscode and Atom-Juno. It is, for example, possible to directly use a
DataFrame from DataFrames.jl as a PGFPlots
In this manual, “PGFPlots” refers to the LaTeX package, its constructs and syntax.
PGFPlots.jl requires a LaTeX installation with the PGFPlots package installed. We recommend using a LaTeX installation with access to
lualatex since it can have significantly better performance over
To generate or preview figures in
svg (like is done by default in Jupyter notebooks)
pdf2svg is required. This can obtained by, on Ubuntu, running
sudo apt-get install pdf2svg, on RHEL/Fedora
sudo dnf install pdf2svg and on macOS e.g.
brew install pdf2svg. On Windows, the binary can be downloaded from here; be sure to add
pdf2svg to the
pdftoppm is required. This should by default on Linux and on macOS should be available after running
brew install poppler. It is also available in the Xpdf tools archive.
If you installed a new LaTeX engine,
pdftoppm after you installed PGFPlotsX you need to run
Pkg.build("PGFPlotsX") for this to be reflected. The output from
Pkg.build should tell you what LaTeX engines and figure-converters it finds.
Learning about PGFPlots
PGFPlotsX does not replicate the PGFPlots documentation. In order to make the best use of this library, you should become familiar with at least the outline of the PGFPlots manual, so that you know about features (plot types, controlling axes and appearance, …) and can look them up when they are needed. If you have PGFPlots installed, a local copy of this manual should be accessible; for example in TeXLive you can open it with
Studying this documentation, especially the manual gallery and other related examples, you will gain a good understanding of how Julia code can be used to generate LaTeX output for PGFPlots easily.
Other useful sources of examples include:
the PGFplots examples gallery,
the collection of plots from the reference manuals.