mplfonts
Fonts manager for matplotlib
Decision gist · record as of 2026-08-14
Yes. If you plot with CJK text in Matplotlib, this package eliminates a common pain point with a single initialization command and minimal dependencies. The MIT license, active maintenance, low install friction, and zero known vulnerabilities make it a safe, practical choice. Install it if you need CJK rendering; skip it if you only use Latin-script languages.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; mplfonts init modifies your matplotlibrc configuration file.
- Low friction: pure Python wheel with four straightforward runtime dependencies (fire, fontmeta, matplotlib, numpy).
- Repository is active with recent commits and no archived status.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute this package freely in both open-source and commercial projects with minimal restrictions.
last release 2026-03-28 (139 days) · last repo commit 2026-07-20 · 91 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 128,022 downloads/mo, #11,723 on PyPI
Alternatives
Verify before relying
pip install mplfonts
mplfonts init
from mplfonts import use_font
use_font('Noto Serif CJK SC')
# matplotlib plotting code here- Whether bundled CJK fonts (Noto Sans/Serif CJK SC, Source Han Serif/Mono SC) are automatically downloaded during installation or require separate setup.
- Whether the package works on all major operating systems (Windows, macOS, Linux) or has platform-specific limitations.
- Performance impact of font switching on large-scale plotting workflows.
What it is and what it does
mplfonts is a font manager for Matplotlib that solves the "tofu" problem—the display of placeholder boxes instead of actual characters—when plotting with CJK text. It provides both a command-line interface and a Python API to manage fonts. The package comes bundled with several open-source CJK typefaces (Noto Sans/Serif CJK SC, Source Han Serif/Mono SC) and handles Matplotlib configuration automatically during initialization.
You install it once with `mplfonts init`, which sets up your Matplotlib configuration for CJK support, then use the `use_font()` function in your plotting scripts to switch between available fonts. The tool also lets you install custom fonts from your system and list all available typefaces. It depends on Matplotlib, NumPy, fontmeta for font metadata, and fire for its CLI.
Use it for
- Plotting scientific data with Chinese, Japanese, or Korean labels and titles in Jupyter notebooks or scripts.
- Creating publication-ready visualizations with CJK text without manual font configuration.
- Switching between multiple CJK typefaces (serif vs. sans-serif, different regional variants) within a single project.
- Installing and managing custom fonts alongside Matplotlib's built-in typefaces via command line.
- Automating font setup in data analysis pipelines that generate multilingual reports.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
If you plot with CJK text in Matplotlib, this package eliminates a common pain point with a single initialization command and minimal dependencies. The MIT license, active maintenance, low install friction, and zero known vulnerabilities make it a safe, practical choice. Install it if you need CJK rendering; skip it if you only use Latin-script languages.
Install
mplfonts on PyPI
Before you install
Low friction: pure Python wheel with four straightforward runtime dependencies (fire, fontmeta, matplotlib, numpy). Repository is active with recent commits and no archived status.
Requires Python 3.9 or later; mplfonts init modifies your matplotlibrc configuration file.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in both open-source and commercial projects with minimal restrictions.
Quickstart
pip install mplfonts
mplfonts init
from mplfonts import use_font
use_font('Noto Serif CJK SC')
# matplotlib plotting code here
Verify before relying
- Whether bundled CJK fonts (Noto Sans/Serif CJK SC, Source Han Serif/Mono SC) are automatically downloaded during installation or require separate setup.
- Whether the package works on all major operating systems (Windows, macOS, Linux) or has platform-specific limitations.
- Performance impact of font switching on large-scale plotting workflows.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesfirefontmetamatplotlibnumpy |
| Maintenance | Actively maintained 139 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 128,022 / month, #11,723 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9 |
Evidence: mplfonts-0.0.11-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “matplotlib cjk font support”
- mplfontsManages Matplotlib fonts and solves CJK (Chinese, Japanese, Korean)…
- japanize-matplotlibEnables matplotlib to display Japanese text in plots by automatically…
- matplotlib-fontjaEnables Japanese text rendering in matplotlib plots by automatically…
Give your agent the search over MCP, or paste the wish link into any chat.
More Graphics packages
Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.
Install it if you need to work with images in Python—it is the de facto standard for this task.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.
PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.
The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.
pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.
Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.
Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.
See also koreanize-matplotlib · matplotlib-fontja · japanize-matplotlib · mplhep-data · pymupdf-fonts · fontbakery · rendercv-fonts · pyfiglet · mplhep · zhon