彻底解决图形中:中文字体显示「豆腐块」问题!

本文分享如何彻底解决图形中:中文/韩文/日文等亚洲字体显示「豆腐块」问题!

cffb8a9d8ef24ec38c69516d07446236.png

  • 最近发现一个很nice的Matplotlib字体管理工具-mplfonts,可彻底解决Matplotlib亚洲字体 (中文、韩文及日文等)显示问题轻松管理Matplotlib字体库

  • 本文详细介绍mplfonts使用。


mplfonts安装

pip install mplfonts -i https://pypi.tuna.tsinghua.edu.cn/simple

mplfonts设置

以下两种方法等效,

  • 方法1、在终端设置:

mplfonts init即可。ff0fd4ecdb59049172d3976b1ef2b598.png

  • 方法2、在代码中加入

from mplfonts.bin.cli import init
init()

mplfonts解决matplotlib中文显示问题

使用mplfonts前,

import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')
plt.figure(dpi=120)
plt.plot([1, 2, 3])
plt.title('家人们~,欢迎关注公众号:pythonic生物人', color='red')

1ef41cae08fe02bca60867ca6584b600.png令人抓狂的豆腐块,下面尝试mplfonts的效果,

from mplfonts import use_font

use_font('Noto Serif CJK SC')#指定中文字体

plt.style.use('fivethirtyeight')
plt.figure(dpi=120)
plt.plot([1, 2, 3])
plt.title('家人们~,欢迎关注公众号:pythonic生物人', color='red')
plt.show()

299f8446f2862e1428832f97e5ac72fb.jpeg豆腐块不见了,中文显示问题完美解决!!!


mplfonts管理matplotlib字体库

如果你认为mplfonts仅仅能解决“中文显示”这么简单的问题,那你就太小瞧它了,mplfonts更大的作用在于管理matploblib的字体库

  • mplfonts安装一种自定义的字体

终端执行,

mplfonts install --update 你的一套字体路径
  • mplfonts安装一批自定义的字体

终端执行,

mplfonts install --update 你的一批字体文件夹路径
  • mplfonts绘图代码中指定字体

以下两行代码即可,

from mplfonts import use_font
use_font('Noto Serif CJK SC') #指定字体

use_font('Noto Serif CJK SC')这里使用了Noto宋体,之所以可以直接调用,是因为在安装mplfonts时,一些开源的字体就已经一起下载了,它们是:

Noto Sans Mono CJK SC:Noto等宽黑体
Noto Serif CJK SC:Noto宋体
Noto Sans CJK SC:Noto黑体
Source Han Serif SC:思源宋体
Source Han Mono SC:思源等宽宋体
  • mplfonts调用系统中任意字体

除了以上5种字体外,你也可以调用系统中任意字体,不知道字体在哪里,终端中使用mplfonts list即可轻松帮你找到,07442486b20d0c3e2ce8470f1d38ce9a.png例如,cmb10.ttf字体绝对路径:/Users/xx/anaconda/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf,

from mplfonts import use_font

use_font('/Users/xx/anaconda/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf')#指定cmb10.ttf字体绝对路径

plt.style.use('fivethirtyeight')
plt.figure(dpi=120)
plt.plot([1, 2, 3])
plt.title('家人们~,欢迎关注公众号:pythonic生物人', color='red')
plt.show()

ref: https://github.com/Clarmy/mplfonts

-------- End --------

推荐👇同名微信视频号

9e4489bc8cc87c1d6ae2d572786bd101.png

d95baf8606c76650f7856b7939fa3ad1.jpeg
图解Pandas

图文00-内容框架介绍 | 图文01-数据结构介绍 | 图文02-创建数据对象 | 图文03-操作Excel文件 | 图文04-常见的数据访问 | 图文05-常见的数据运算 |  图文06-常见的数学计算 | 图文07-常见的数据统计 | 图文08-常见的数据筛选 |  图文09-常见的缺失值处理 | 图文10-数据合并操作 | 图文11-Groupby分组操作

bde5d65ed8d00de70e93e0071727d2c8.jpeg 3ff4d02a4be050bc22e381de5368d3fd.jpeg

6ae5df3161372eb69dc3746340080f72.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值