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

2024-05-06 17:48

本文主要是介绍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 subprocessmpl_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 CondensedAndale MonoApple BrailleApple ChanceryApple SymbolsAppleGothicAppleMyungjoArialArial BlackArial NarrowArial Rounded MT BoldArial Unicode MSAyuthayaBig CaslonBitstream Vera SansBitstream Vera Sans MonoBitstream Vera SerifBodoni 72 SmallcapsBodoni OrnamentsBradley HandBrush Script MTChalkdusterComic Sans MSConsolasCourier NewDIN AlternateDIN CondensedDejaVu SansDejaVu Sans DisplayDejaVu Sans MonoDejaVu SerifDejaVu Serif DisplayDiwan ThuluthEast Syriac AdiabeneEast Syriac CtesiphonEstrangelo AntiochEstrangelo EdessaEstrangelo MidyatEstrangelo NisibinEstrangelo Nisibin OutlineEstrangelo QuenneshrinEstrangelo TaladaEstrangelo TurAbdinFarisiGeorgiaGoha-Tibeb ZemenGurmukhi MTHerculanumHoefler TextImpactInaiMathiKhmer Sangam MNKokonorKrungthepLao Sangam MNLuminariLuxi MonoLuxi SansLuxi SerifMicrosoft Sans SerifMicrosoft YaHei MonoMishafiMishafi GoldPlantagenet CherokeeSTIXGeneralSTIXIntegralsDSTIXIntegralsSmSTIXIntegralsUpSTIXIntegralsUpDSTIXIntegralsUpSmSTIXNonUnicodeSTIXSizeFiveSymSTIXSizeFourSymSTIXSizeOneSymSTIXSizeThreeSymSTIXSizeTwoSymSTIXVariantsSathuSerto BatnanSerto JerusalemSerto Jerusalem OutlineSerto KharputSerto MalankaraSerto MardinSerto UrhoySilomSkiaSymbolSystem FontTahomaTimes New RomanTrattatelloTrebuchet MSVerdanaWebdingsWingdingsWingdings 2Wingdings 3YaHei Consolas HybridZapf DingbatsZapfinocmb10cmex10cmmi10cmr10cmss10cmsy10cmtt10
Fontconfig warning: ignoring UTF-8: not a valid region tagChinese font list get from fc-list:.Hiragino Sans GB Interface.LastResort.PingFang HK.PingFang SC.PingFang TCArial Unicode MSFixedGB18030 BitmapHeiti SCHeiti TCHiragino Sans GBMicrosoft YaHei MonoPingFang HKPingFang SCPingFang TCSTSongSongti SCSongti TCYaHei Consolas Hybridthe fonts we can use:.LastResortMicrosoft YaHei MonoYaHei Consolas HybridArial Unicode MS



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

这里选择了 YaHei Consolas Hybrid。



mpl.rcParams['font.sans-serif'] = ['YaHei Consolas Hybrid'] #指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题


这篇关于Linux/MacOS下matplotlib能正常显示的中文字体选择的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964957

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、