Skip to main content

Fonts manager for matplotlib

Project description

中文文档

Python package PyPI version contributions welcome

mplfonts

Fonts manager for matplotlib

This is a python package and command line tool to manage your matplotlib fonts. You can easily resolve the "tofu" problem when plotting with CJK(Chinese, Japanese, Korean) languages.

Installation

You can install mplfonts with pip

$ pip install mplfonts

Quickstart

You can just run one command to solve the "tofu" problem:

$ mplfonts init

After that, try to use matplotlib to plot an image with CJK text, it should be normal.

Now you can enjoy it.

Usage

This package's aim is not only to solve "tofu" problem, but also to manage matplotlib fonts. When you installed mplfonts, there are some open-source CJK fonts already included, they are:

  • Noto Sans Mono CJK SC
  • Noto Serif CJK SC
  • Noto Sans CJK SC
  • Source Han Serif SC
  • Source Han Mono SC If you have finished the init, You can shift fonts in you script like:
from mplfonts import use_font

use_font('Noto Serif CJK SC')

# write your plotting code below

If you want to setup some custom fonts, you can install by command:

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

Also, you can install all fonts in a directory(folder) by:

$ mplfonts install --update <your directory path>

Don't know what fonts is available? Don't worry, you can use mplfonts list to list 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

...

It will show fonts' name and source file, and these names can be argument to pass to use_font function

By default, mplfonts init will generate a matplotlibrc as the cache configuration, supporting CJK render, to replace your old one, the content of matplotlibrc is:

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

It will preferentially use Noto Sans CJK SC Regular as the default font. If you install custom fonts from other source, and want it to be the first priority, you should add it to the leftmost end of font.sans-serif list, and then run $ mplfonts updaterc <your matploblibrc path> to set it as your global cache rc.

Fonts Source

You can access some open-source fonts from google and adobe, here is some resource:

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.6.tar.gz (85.0 MB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: mplfonts-0.0.6.tar.gz
  • Upload date:
  • Size: 85.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.13

File hashes

Hashes for mplfonts-0.0.6.tar.gz
Algorithm Hash digest
SHA256 648e917c35a3cb1ee13ae26a2938b49ec5f5c749b64c1195ed99618194089483
MD5 93d45d547c7dd3ffbba81fc008e42856
BLAKE2b-256 31f14f0bd907dd04b860fa8b7475b7e9d5d637e8d0162cf05d50b909c0f49f69

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