资讯专栏INFORMATION COLUMN

Linux下解决matplotlib中文乱码的方法

Lemon_95 / 1635人阅读

摘要:原因没有使用操作系统的字体库,同时默认的字体列表里没有可以显示中文的字体。解决过程查看支持的中文字体。修改文件默认对应的是其中为上一步中找到的其中一个可用中文字体。

原因:matplotlib没有使用操作系统的字体库,同时默认的字体列表里没有可以显示中文的字体。

解决过程:

1. 查看matplotlib支持的中文字体。

用python运行以下代码:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from matplotlib.font_manager import FontManager
import subprocess

fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)

output = subprocess.check_output(
    "fc-list :lang=zh -f "%{family}
"", shell=True)
# print "*" * 10, "系统可用的中文字体", "*" * 10
# print output
zh_fonts = set(f.split(",", 1)[0] for f in output.split("
"))
available = mat_fonts & zh_fonts

print "*" * 10, "可用的字体", "*" * 10
for f in available:
    print f
2. 配置matplotlibrc文件。

修改matplotlibrc文件(Ubuntu默认对应的是/etc/matplotlibrc):

font.family         : serif
font.serif : {zh_family}, serif

其中{zh_family}为上一步中找到的其中一个可用中文字体。如果上步可用的字体为空,则需要将中文字体文件(tff)复制到matplotlib的字体目录下,再重复以上步骤。

*对于Windows,没有fc-list命令,找到对应可以字体直接在第2步里修改也可。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7578.html

相关文章

  • python matplotlib 中文显示参数设置

    摘要:最近在学习著名的绘图包时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。原因大致就是库中没有中文字体。 最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。 PS:本文仅针对Windows,其他平台仅供参考。 原因 大致就是matplotlib库中没有中文字体。1我安装的anaconda,这是对应的...

    Pocher 评论0 收藏0
  • python matplotlib 中文显示参数设置

    摘要:最近在学习著名的绘图包时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。原因大致就是库中没有中文字体。 最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。 PS:本文仅针对Windows,其他平台仅供参考。 原因 大致就是matplotlib库中没有中文字体。1我安装的anaconda,这是对应的...

    Ethan815 评论0 收藏0
  • Linuxmysql中文乱码解决方法

    摘要:系统环境安装后,默认的字符集是。在下安装不像在上安装那像,可以选择字符集即使当时使用了默认的字符集,安装后也可以在安装目录下修改文件,但是在就不太一样了。在输入登陆后回车后显示这就是它默认的设置。 系统环境: suse linux server 10,mysql 5.0 安装mysql后,默认的字符集是latin1。在linux下安装mysql不像在windows上安装那像,可以选择...

    frolc 评论0 收藏0
  • Linuxmysql中文乱码解决方法

    摘要:系统环境安装后,默认的字符集是。在下安装不像在上安装那像,可以选择字符集即使当时使用了默认的字符集,安装后也可以在安装目录下修改文件,但是在就不太一样了。在输入登陆后回车后显示这就是它默认的设置。 系统环境: suse linux server 10,mysql 5.0 安装mysql后,默认的字符集是latin1。在linux下安装mysql不像在windows上安装那像,可以选择...

    rainyang 评论0 收藏0
  • Linuxmysql中文乱码解决方法

    摘要:系统环境安装后,默认的字符集是。在下安装不像在上安装那像,可以选择字符集即使当时使用了默认的字符集,安装后也可以在安装目录下修改文件,但是在就不太一样了。在输入登陆后回车后显示这就是它默认的设置。 系统环境: suse linux server 10,mysql 5.0 安装mysql后,默认的字符集是latin1。在linux下安装mysql不像在windows上安装那像,可以选择...

    betacat 评论0 收藏0

发表评论

0条评论

Lemon_95

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<