Skip to content

🇹🇼 A package to solve the problem of "Tofu" in your matplotlib plots whenever you're trying to use Traditional Chinese characters in labels or texts.

License

Notifications You must be signed in to change notification settings

Hsins/mpl-tc-fonts

Repository files navigation

mpl-tc-fonts

mpl-tc-fonts

🇹🇼 A package to solve the problem of "Tofu" in your matplotlib plots whenever you're trying to use Traditional Chinese characters in labels or texts.

Open in Colab README in Traditional Chinese

Other CJK Characters Version

Installation

Install mpl-tc-fonts with pip:

# Install from GitHub Repository for latest commit
$ pip install git+https://github.com/Hsins/mpl-tc-fonts.git

The package installer pip will install this package from the mpl-tc-fonts repository to your local python environment. Please see the FAQ section for more information and troubleshooting.

Usage

Quick Start

The easiest way to use this package is just import the package after installation. It links the fonts inside package folder to the matplotlib font manager and the Traditional Chinese characters will be properly displayed in your plots.

import matplotlib.pyplot as plt
import mpl_tc_fonts

names = ['分類 A', '分類 B', '分類 C']
values = [1, 10, 100]

plt.figure(figsize=(9, 3))

plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle('分類資料圖')
plt.show()

[NOTE] The default font would set to be 思源宋體(Noto Serif CJK TC).

More Features

import mpl_tc_fonts

# Copy the cwTeX fonts into matplotlib folder
font_tool.load_font('cwtex', 'copy')

# Set "cwTeX Q Kai" to be the display font
font_tool.set_font('cwTeX Q Kai')

# Print out current font in use
font_tool.show_font_setting()

# Print out the list of the avaiable font-family name
print(font_tool.scan_font('國'))

There are some functions to help users qucik setup the fonts:

  • mpl_tc_fonts.load_font(folder, method) would install the given fonts.
    • folder can be noto (default) or cwtex
    • method can be link (default) or copy
  • mpl_tc_fonts.set_font(font) would set the given font to display the texts. There are 7 different fonts in this package.
    • Noto Sans CJK TC: 思源黑體
    • Noto Serif CJK TC: 思源宋體
    • cwTeX Q Ming: cwTeX 中明體
    • cwTeX Q Kai: cwTeX 中楷體
    • cwTeX Q Yuan: cwTeX 中圓體
    • cwTeX Q Fangsong: cwTeX 仿宋體
    • cwTeX Q Hei: cwTeX 粗黑體
  • mpl_tc_fonts.scan_font(char) return the list of avaiable fonts in the FontList of matlibplot. The given char is used to check whether glyph could be found in that font or not.
  • mpl_tc_fonts.show_font_setting() print out current font in use.

FAQ

[ Q ] What's the difference between copy and link options in the load_font() method?

TBD

License

Licensed under the GPL-3.0 License, Copyright © 2020-present Hsins.

About

🇹🇼 A package to solve the problem of "Tofu" in your matplotlib plots whenever you're trying to use Traditional Chinese characters in labels or texts.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages