osx 字体 linux,Linux/MacOS下matplotlib能正常显示的中文字体选择

下面的Python脚本可以检测到 *nix 系统内 matplotlib 支持正常显示的中文字体(用到了命令行工具 fc-list ):

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# File Name: font_check.py

# Created Time: Thu Mar 23 16:53:59 2017

__author__ = 'minyu'

__mail__ = 'minyu7374@gmail.com'

from matplotlib.font_managerimport FontManager

import subprocess

mpl_fonts = set(f.namefor f in FontManager().ttflist)

print ('all font list get from matplotlib.font_manager:')

for f in sorted(mpl_fonts):

print('\t' + f)

# for python2

# output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True)

# for python3

output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True, encoding="utf8")

zh_fonts = set(f.split(',',1)[0] for f in output.split('\n'))

print('\n' +'Chinese font list get from fc-list:')

for f in sorted(zh_fonts):

print('\t' + f)

print('\n' +'the fonts we can use:')

available = set(mpl_fonts) & set(zh_fonts)

for f in available:

print('\t' + f)

在个人的 MacOS Sierra 系统下运行结果如下:

Fontconfig warning: ignoring UTF-8: not a valid region tag

all font list get from matplotlib.font_manager:

.Keyboard

.LastResort

.SF Compact Display

.SF Compact Rounded

.SF Compact Text

.SF NS Display Condensed

.SF NS Text Condensed

Andale Mono

Apple Braille

Apple Chancery

Apple Symbols

AppleGothic

AppleMyungjo

Arial

Arial Black

Arial Narrow

Arial Rounded MT Bold

Arial Unicode MS

Ayuthaya

Big Caslon

Bitstream Vera Sans

Bitstream Vera Sans Mono

Bitstream Vera Serif

Bodoni 72 Smallcaps

Bodoni Ornaments

Bradley Hand

Brush Script MT

Chalkduster

Comic Sans MS

Consolas

Courier New

DIN Alternate

DIN Condensed

DejaVu Sans

DejaVu Sans Display

DejaVu Sans Mono

DejaVu Serif

DejaVu Serif Display

Diwan Thuluth

East Syriac Adiabene

East Syriac Ctesiphon

Estrangelo Antioch

Estrangelo Edessa

Estrangelo Midyat

Estrangelo Nisibin

Estrangelo Nisibin Outline

Estrangelo Quenneshrin

Estrangelo Talada

Estrangelo TurAbdin

Farisi

Georgia

Goha-Tibeb Zemen

Gurmukhi MT

Herculanum

Hoefler Text

Impact

InaiMathi

Khmer Sangam MN

Kokonor

Krungthep

Lao Sangam MN

Luminari

Luxi Mono

Luxi Sans

Luxi Serif

Microsoft Sans Serif

Microsoft YaHei Mono

Mishafi

Mishafi Gold

Plantagenet Cherokee

STIXGeneral

STIXIntegralsD

STIXIntegralsSm

STIXIntegralsUp

STIXIntegralsUpD

STIXIntegralsUpSm

STIXNonUnicode

STIXSizeFiveSym

STIXSizeFourSym

STIXSizeOneSym

STIXSizeThreeSym

STIXSizeTwoSym

STIXVariants

Sathu

Serto Batnan

Serto Jerusalem

Serto Jerusalem Outline

Serto Kharput

Serto Malankara

Serto Mardin

Serto Urhoy

Silom

Skia

Symbol

System Font

Tahoma

Times New Roman

Trattatello

Trebuchet MS

Verdana

Webdings

Wingdings

Wingdings 2

Wingdings 3

YaHei Consolas Hybrid

Zapf Dingbats

Zapfino

cmb10

cmex10

cmmi10

cmr10

cmss10

cmsy10

cmtt10

Fontconfig warning: ignoring UTF-8: not a valid region tag

Chinese font list get from fc-list:

.Hiragino Sans GB Interface

.LastResort

.PingFang HK

.PingFang SC

.PingFang TC

Arial Unicode MS

Fixed

GB18030 Bitmap

Heiti SC

Heiti TC

Hiragino Sans GB

Microsoft YaHei Mono

PingFang HK

PingFang SC

PingFang TC

STSong

Songti SC

Songti TC

YaHei Consolas Hybrid

the fonts we can use:

.LastResort

Microsoft YaHei Mono

YaHei Consolas Hybrid

Arial Unicode MS

YaHei Consolas Hybrid 是我自己安装的字体,其他三个都是系统默认的,

这里选择了 YaHei Consolas Hybrid。

mpl.rcParams['font.sans-serif'] = ['YaHei Consolas Hybrid'] #指定默认字体

mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值