欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python Mac Anaconda环境下Matplotlib图中显示中文字体

程序员文章站 2022-03-07 15:02:30
...

1. 说明


本篇主要针对在MAC系统中Anaconda环境下,matplotlib显示不了中文的问题,提出解决Python绘图时中文显示的方法。

2. 环境


本测试于本人MAC Air机器2018年8月实验成功。
Anaconda: 1.8.7
MacOS: 10.13.6
Python: 3.6

3. 方法

1- 进入Fonts文件夹

在Fonts里面可以通过图片发现哪些是中文字库-图标显示汉体,如:Arial Unicode
Python Mac Anaconda环境下Matplotlib图中显示中文字体
Python Mac Anaconda环境下Matplotlib图中显示中文字体

2- 确认字符英文全名

在打印List的中找Arial Unicode,得到全名为:Arial Unicode MS

import matplotlib
font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in font_list:
    print (i)

3- 程序加载字符库

plt.rcParams['font.family'] = ['Arial Unicode MS'] #正常显示中文

4- 程序测试

借用网上程序,侵权删。

import matplotlib.lines as mlines
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%matplotlib inline
from matplotlib.font_manager import FontProperties

plt.rcParams['font.family'] = ['Arial Unicode MS'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.figure()
x=pd.Series(np.exp(np.arange(20)))
p1=x.plot(label=u'原始数据图')
plt.ylabel('正常坐标')
x2=pd.Series(np.log10(x)) #np.log()是以e为底的
p2=x2.plot(secondary_y=True,style='--',color='r',)
plt.yticks(plt.yticks()[0],['$10^%d$'%w for w in range(len(plt.yticks()[0]))])
plt.ylabel('指数坐标')
blue_line = mlines.Line2D([],[],linestyle='-',color='blue',markersize=2, label=u'原始数据图')
red_line= mlines.Line2D([],[],linestyle='--',color='red',markersize=2, label=u'对数数据图')
plt.legend(handles=[blue_line,red_line],loc='upper left')
plt.grid(True)
plt.show()

Python Mac Anaconda环境下Matplotlib图中显示中文字体

以上是我的半原创方式,转载请注明出处。谢谢咯!

相关标签: 编程