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.

Contents

Install

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:
ds.display(ds.Markdown(
    f'![My beautiful figure]({mh.img()}){{#fig:1}}'
))
# or if you have image size issues in Hydrogen try:
ds.display(ds.HTML(
    f'<img src="{mh.img()}" width="900">'
))

Qt backend gives interactive plots in Atom/Hydrogen.

Hints

  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
    font_manager._rebuild()
  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 details)

Uploaded Source

File details

Details for the file matplotlibhelper-0.0.10.tar.gz.

File metadata

  • Download URL: matplotlibhelper-0.0.10.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1.post20191125 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.5

File hashes

Hashes for matplotlibhelper-0.0.10.tar.gz
Algorithm Hash digest
SHA256 b5801ee817d1bc8be97fbe2e44c6f326b153b47c315d5304fd93bf9d867d06e1
MD5 1629918631e6d2585be991be35f2a527
BLAKE2b-256 ce97c44f732b5c10ef33432eabec720afc3f47949f2c799aee0848f142f3e3c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page