Matplotlib基础(杂):中文及英文字体设置
记一下在Matplotlib绘图中默认字体的调整,以及中文字体绘图时会涉及的乱码问题,本文主要参考。
包引入,需要注意的是,此处默认绘图要么统一中文要么统一英文,不考虑中英文混杂的情况
1 | import matplotlib |
内置及本地字体查看
配置文件matplotlibrc,查看字体列表位置:
1 | matplotlib.get_cachedir() |
查看具体及本地全部中英文字体的别名:
1 | [f.name for f in matplotlib.font_manager.fontManager.afmlist] |
当前的默认字体
1 | print(plt.rcParams["font.serif"][0]) |
字体类别及设置
了解一下中英文字体和分类,此处对字体进行初步了解
英文
Matplotlib中字体大类==Family==有{'cursive', 'fantasy', 'monospace', 'sans', 'sans-serif', 'serif'},常用的就 'sans serif', 'serif'。选择字体时先选择大类再设置对应的具体字体,如下:
1 | # 选择无衬线字体并将其指定为“Helvetica” |
常用字体:
- Sans Serif:无衬线体,如Arial(等线),Calibri,Helvetica,Consolas,Noto Sans SC
- Serif:衬线体,笔画的末尾有“衬线”,棱角分明一些,似乎对印刷更为友好:Times New Roman,Courier,Noto Serif SC,Georgia, Droid Serif, Cambria
中文
中文常用的字体别称如下,具体名称可以在第一节除查看:
1 | plt.rcParams["font.family"] = "serif" |
字体名称 | 别名 |
---|---|
宋体 | SimSun |
黑体 | Simhei |
楷体 | KaiTi |
等线 | DengXian |
仿宋 | FangSong |
微软雅黑 | Microsoft YaHei |
华文宋体 | STSong |
华文中宋 | STZhongsong |
华文楷体 | STKaiti |
方正舒体 | FZShuTi |
华文新魏 | STXinwei |
方正姚体 | FZYaoTi |
绘图参考,比如此处我设置华文新魏字体
字体属性
字体属性在涉及文本的属性设置如text或者labels,都可以添加属性字典调节:
包括:颜色、字体风格、是否加粗、倾斜、大小、透明度、背景颜色、对齐方式、背景框bbox等等
- 如果单独设置则:fontsize, fontstyle,fontweight...,详细参考字体属性
1 | fontdict = { |