Showing / Exporting figures

# Showing / Exporting figures

## Jupyter

Figures are shown in `svg` format when evaluated in Jupyter. For this you need the `pdf2svg` software installed. If you want to show them in `png` format (because perhaps is too large), you can use `display(MIME"image/png", p)` where `p` is the figure to show.

## Juno

Figures are shown in the Juno plot pane as `svg`s by default. If you want to show them as `png`, run `show_juno_png(true)`, (`false` to go back to `svg`). To set the dpi of the figures in Juno when using `png`, run `dpi_juno_png(dpi::Int)`. If you are on macOS and there are problems finding the latex executable, see this isssue. Starting Atom through the terminal seems to work around it.

## REPL

In the REPL, the figure will be exported to a `pdf` and attempted to be opened in the default `pdf` viewing program. If you wish to disable this, run `PGFPlotsX.enable_interactive(false)`.

## Exporting to files

Figures can be exported to files using

``pgfsave(filename::String, figure; include_preamble::Bool = true, dpi = 150)``

where the file extension of `filename` determines the file type (can be `pdf`, `svg` or `tex`, or the standalone `tikz` file extensions below), `include_preamble` sets if the preamble should be included in the output (only relevant for `tex` export) and `dpi` determines the dpi of the figure (only relevant for `png` export).

``````save(filename, td; include_preamble, latex_engine, buildflags, dpi, showing_ide)
``````

Save the argument (either `TikzDocument`, or some other type which is wrapped in one automatically, eg `TikzPicture`, `Axis`, or `Plot`) to `filename`, guessing the format from the file extension. Keywords specify options, some specific to some output formats.

`pgfsave` is an alias which is exported.

source

The standalone file extensions `tikz`, `TIKZ`, `TikZ`, `pgf`, `PGF` save LaTeX code for a `tikzpicture` environment without a preamble. You can `\input` them directly into a LaTeX document, or use the the tikzscale LaTeX package for using `\includegraphics` with possible size adjustments.

Hint

You can use the externalization feature of `tikz`/`pgfplots`, which caches generated `pdf` files for faster compilation of LaTeX documents. Use

``````\usepgfplotslibrary{external}
\tikzexternalize``````

in the preamble of the LaTeX document which uses these plots, see the manuals for more details.

## Customizing the preamble

It is common to use a custom preamble to add user-defined macros or use different packages. There are a few ways to do this:

• `push!` strings into the global variable `PGFPlotsX.CUSTOM_PREAMBLE`. Each string in that vector will be inserted in the preamble.

• Modify the `custom_preamble.tex` file in the `deps` folder of the directory of the package. This file is directly spliced into the preamble of the output.

• Define the environment variable `PGFPLOTSX_PREAMBLE_PATH` to a path pointing to a preamble file. The content of that will be inserted into the preamble.

A vector of stings, added after `DEFAULT_PREAMBLE`.

Use this for additional definitions `\usepackage` statements required by the LaTeX code you include into plots.

source

## Choosing the LaTeX engine used

Thee are two different choices for latex engines, `PDFLATEX`, `LUALATEX`. By default, `LUALATEX` is used if it was available during `Pkg.build()`. The active engine can be retrieved with the `latexengine()` function and be set with `latexengine!(engine)` where `engine` is one of the two previously mentioned engines (e.g. `PGFPlotsX.PDFLATEX`).

## Custom flags

Custom flags to the engine can be used in the latex command by `push!`-ing them into the global variable `CUSTOM_FLAGS`.

source