Save matplotlib figures with embedded metadata for reproducibility and profit
Remember that time where you tried to remake a figure for your paper and couldn’t seem to get the same results? We’ve all been there. Well not anymore!
This module monkey patches the savefig command from matplotlib and inserts your current git commit hash into the metadata of the saved file. Currently it supports PNG and PDF figures.
First, install the module from PyPI:
pip install savefig
or from source:
git clone https://github.com/dfm/savefig.git cd savefig python setup.py install
Then in all your code just add the following lines before importing matplotlib:
from savefig import monkey_patch monkey_patch()
To read the metadata from an existing image file, run:
python -m savefig /path/to/figure.png
which will give you something like:
git-hash: 192a639c4a9eb7523e9becd23f359fd7d96e833f git-date: 2014-03-29 21:30:27 -0400 git-author: Dan F-M
You can also get the diff between the saved commit hash and the version used to make the figure by running:
python -m savefig /path/to/figure.png --diff
Copyright 2014 Dan Foreman-Mackey
Available under the MIT License.