Skip to main content

Fonts manager for matplotlib

Project description

中文文档

Python package PyPI version contributions welcome

mplfonts

The Matplotlib font manager is a Python package and command-line tool that allows you to manage your Matplotlib fonts. It provides an easy solution to the "tofu" problem that arises when plotting with CJK (Chinese, Japanese, Korean) languages.

Installation

You can use pip to install mplfonts.

$ pip install mplfonts

Quickstart

You can easily solve the "tofu" problem with a single command:

$ mplfonts init

After that, try using Matplotlib to plot an image with CJK text; it should display normally.

Now you can enjoy it.

Usage

This package not only solves the "tofu" problem, but also provides a convenient way to manage Matplotlib fonts. When you install mplfonts, it comes with several open-source CJK fonts, including:

  • Noto Sans Mono CJK SC
  • Noto Serif CJK SC
  • Noto Sans CJK SC
  • Source Han Serif SC
  • Source Han Mono SC

Once you have finished the initialization step, you can use the following code in your script to switch fonts:

from mplfonts import use_font

use_font('Noto Serif CJK SC')

# write your plotting code below

If you want to set up custom fonts, you can install them with the following command:

$ mplfonts install --update <your font file path>

Furthermore, you can install all the fonts in a directory by running the following command:

$ mplfonts install --update <your directory path>

Unsure of which fonts are available? No problem, simply use the command mplfonts list to see a list of all available fonts.

$ mplfonts list
DejaVu Sans Display:
/Users/clarmylee/Miniconda3/envs/mplfonts/lib/python3.6/site-packages/matplotlib-3.3.4-py3.6-macosx-10.9-x86_64.egg/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf
---------------
DejaVu Sans:
/Users/clarmylee/Miniconda3/envs/mplfonts/lib/python3.6/site-packages/matplotlib-3.3.4-py3.6-macosx-10.9-x86_64.egg/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf
---------------
Source Han Mono SC:
/Users/clarmylee/Miniconda3/envs/mplfonts/lib/python3.6/site-packages/matplotlib-3.3.4-py3.6-macosx-10.9-x86_64.egg/matplotlib/mpl-data/fonts/ttf/SourceHanMonoSC-Regular.otf

...

This command will show the names and source files of the fonts, which can then be passed as arguments to the use_font function.

By default, running mplfonts init will generate a new matplotlibrc file to replace your current one. This new file will contain cache configuration settings that support CJK rendering. Here is the content of the new matplotlibrc file:

font.family:  sans-serif
font.sans-serif: Noto Sans CJK SC Regular, 思源等宽, Noto Serif CJK SC, 思源宋体, Noto Sans Mono CJK SC Regularsans-serif
axes.unicode_minus: False

By default, Noto Sans CJK SC Regular is the preferred font. If you install custom fonts from another source and want them to have first priority, add them to the leftmost end of the font.sans-serif list. Then, run $ mplfonts updaterc <your matplotlibrc path> to set it as your global cache configuration.

Fonts Source

You can access some open-source fonts from Google and Adobe. Here are some resources:

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

mplfonts-0.0.8.tar.gz (85.0 MB view details)

Uploaded Source

Built Distribution

mplfonts-0.0.8-py3-none-any.whl (85.0 MB view details)

Uploaded Python 3

File details

Details for the file mplfonts-0.0.8.tar.gz.

File metadata

  • Download URL: mplfonts-0.0.8.tar.gz
  • Upload date:
  • Size: 85.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mplfonts-0.0.8.tar.gz
Algorithm Hash digest
SHA256 0abcb2fc0605645e1e7561c6923014d856f11676899b33b4d89757843f5e7c22
MD5 1b30900da564b1ecd2f341267608b93a
BLAKE2b-256 c18208f3819f5d73f524bc7e3b8c25f21fdcf04d32e1bdd2df6fff4822f28296

See more details on using hashes here.

File details

Details for the file mplfonts-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: mplfonts-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 85.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mplfonts-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b2182e5b0baa216cf016dec19942740e5b48956415708ad2d465e03952112ec1
MD5 d2af8a8f2f6b8163eab7431c7f25018f
BLAKE2b-256 9f6d09cde20e8f6de4ec954af0889dff4305f057aefa9c9c75a189e23f390420

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