Fonts manager for matplotlib
Project description
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0abcb2fc0605645e1e7561c6923014d856f11676899b33b4d89757843f5e7c22 |
|
MD5 | 1b30900da564b1ecd2f341267608b93a |
|
BLAKE2b-256 | c18208f3819f5d73f524bc7e3b8c25f21fdcf04d32e1bdd2df6fff4822f28296 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2182e5b0baa216cf016dec19942740e5b48956415708ad2d465e03952112ec1 |
|
MD5 | d2af8a8f2f6b8163eab7431c7f25018f |
|
BLAKE2b-256 | 9f6d09cde20e8f6de4ec954af0889dff4305f057aefa9c9c75a189e23f390420 |