Skip to main content

Matplotlib Helper is my custom helper to tune Matplotlib experience in Atom/Hydrogen and Pandoctools/Knitty.

Project description

Matplotlib Helper

Matplotlib Helper is my custom helper to tune Matplotlib experience for Pandoctools/Knitty (but it can be used by itself). I tuned fonts (that are shipped with this python package), please see default fonts and other options in default keyword arguments of ready(...), img(...) and img_path(...). I made some tweaks to use it with SugarTeX, some tweaks to automatically use interactive Qt5 plots in Atom/Hydrogen or non-jupyter Python. It can also export plots to SVG or PNG.

Works in Jupyter as well.



Via conda:

conda install -c defaults -c conda-forge matplotlibhelper

Via pip:

pip install matplotlibhelper

Additionally you may need to install to use in Jupyter Lab:

conda install jupyterlab jupyterlab_server tk nodejs
pip install ipympl
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib

Instead of pip install ipympl you can also try:

conda update --all
conda install -c defaults -c conda-forge ipympl
conda update --all

Usage example

Usage example that works both in Atom+Hydrogen and in Pandoctools+Knitty:

import IPython.display as ds
import matplotlibhelper as mh
mh.ready(font_size=14)  # should be run before import matplotlib.pyplot
import matplotlib.pyplot as plt

plt.figure(figsize=mh.figsize(w=6))  # height is automatic via the golden ration
plt.plot([1, 2, 3, 4])
plt.ylabel(mh.stex('ˎ∇ ⋅ [ ⃗E]ˎ, V/m'))  # using SugarTeX

# this code in Knitty would be parsed by Pandoc,
# in Atom/Hydrogen or Jupyter it would be displayed:
    f'![My beautiful figure]({mh.img()}){{#fig:1}}'
# or if you have image size issues in Hydrogen try:
    f'<img src="{mh.img()}" width="900">'

Qt backend gives interactive plots in Atom/Hydrogen.


  1. Delete fontList.cache, fontList.py3k.cache or fontList.json from %USERPROFILE%\.matplotlib folder after installing a new font.
  2. If font becomes bold without a reason try (source):
from matplotlib import font_manager
if 'roman' in font_manager.weight_dict:
    del font_manager.weight_dict['roman']
    # noinspection PyProtectedMember
  1. Install Computer Modern Unicode for bold-italic unicode support: "mathtext.sf": "CMU Serif:bold:italic". Sans-serif command \mathsf{} is reassigned because sans-serif font is rarely used in serif docs.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matplotlibhelper-0.0.10.tar.gz (1.7 MB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page