A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice.
A Pandoc filter to include figures generated from code blocks. Keep the document and code in the same location. Output is captured and included as a figure.
pandoc-plot
A Pandoc filter to generate figures from code blocks in documents
pandoc-plot
turns code blocks present in your documents (Markdown, LaTeX, etc.) into embedded figures, using your plotting toolkit of choice, including Matplotlib, ggplot2, MATLAB, Mathematica, and more.
Overview
This program is a Pandoc filter. It can therefore be used in the middle of conversion from input format to output format, replacing code blocks with figures.
The filter recognizes code blocks with classes that match plotting toolkits. For example, using the matplotlib
toolkit:
# My document
This is a paragraph.
```{.matplotlib}
import matplotlib.pyplot as plt
plt.figure()
plt.plot([0,1,2,3,4], [1,2,3,4,5])
plt.title('This is an example figure')
```
Putting the above in input.md
, we can then generate the plot and embed it in an HTML page:
pandoc --filter pandoc-plot input.md --output output.html
The resulting output.html
looks like this:
<h1 id="my-document">My document</h1>
<p>This is a paragraph.</p>
<figure>
<img src="plots\9671478262050082276.png" />
</figure>
Supported toolkits
pandoc-plot
currently supports the following plotting toolkits (installed separately):
matplotlib
: plots using the matplotlib Python library;plotly_python
: plots using the plotly Python library;plotly_r
: plots using the plotly R librarymatlabplot
: plots using MATLAB;mathplot
: plots using Mathematica;octaveplot
: plots using GNU Octave;ggplot2
: plots using ggplot2;gnuplot
: plots using gnuplot;graphviz
: graphs using Graphviz;bokeh
: plots using the Bokeh visualization library;plotsjl
: plots using the JuliaPlots.jl
package;plantuml
: diagrams using the PlantUML software suite;sageplot
: plots using the Sage software system;d2
: plots using D2;asymptote
: plots using Asymptote.
To know which toolkits are useable on your machine (and which ones are not available), you can check with the toolkits
command:
pandoc-plot toolkits
Wish your plotting toolkit of choice was available? Please raise an issue!
Documentation
You can find more information in the documentation, available either in the source repository file MANUAL.md
, on the webpage, or via the command pandoc-plot --manual
.
Installation
Binaries and Installers
Windows, Linux, and Mac OS binaries are available on the GitHub release page. There are also Windows installers.
conda
Like pandoc
, pandoc-plot
is available as a package installable with conda
. Click here to see the package page.
To install in the current environment:
conda install -c conda-forge pandoc-plot
Homebrew
pandoc-plot
is available as a package via Homebrew
. Click here to see the package page.
To install:
brew install pandoc-plot
winget
You can install pandoc-plot
from the Windows Package Managerwinget
(just like pandoc
). To install:
winget install pandoc-plot
Arch Linux
You can install pandoc-plot
from the archlinux user repository as pandoc-plot-bin
. You can install using e.g. yay
:
yay -S pandoc-plot-bin
From Hackage/Stackage
pandoc-plot
is available on Hackage and Stackage. Using the cabal-install
tool:
cabal update
cabal install
From source
Building from source can be done using cabal
:
git clone https://github.com/LaurentRDC/pandoc-plot
cd pandoc-plot
cabal install # Alternatively, `stack install`