Python笔记——matplotlib显示中文

浏览: 1391

Clipboard Image.png                                                             

matplotlib是Python的非常友好的可视化模块,但在绘图中并不能直接使用中文。

比如我们要做插值运算,为了让数据直观可视,我们根据代码绘图如下

# -*- coding: utf-8 -*-
import numpy as np
import pylab as pl
from scipy import interpolate
import matplotlib.pyplot as plt
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)

x = np.linspace(0, 2*np.pi+np.pi/4, 10)
y = np.sin(x)

x_new = np.linspace(0, 2*np.pi+np.pi/4, 100)
f_linear = interpolate.interp1d(x, y)
tck = interpolate.splrep(x, y)
y_bspline = interpolate.splev(x_new, tck)

plt.xlabel(u'安培/A')
plt.ylabel(u'伏特/V')

plt.plot(x, y, "o", label=u"原始数据")
plt.plot(x_new, f_linear(x_new), label=u"线性插值")
plt.plot(x_new, y_bspline, label=u"B-spline插值")

pl.legend()
pl.show()

                                                                

汉字乱码,,这分明是歧视好嘛

显然没有达到我们想要的效果

我们来做一下修改

下载微软雅黑字体文件msyh.tff

将字体拷贝到matplotlib安装位置 /matplotlib/mpl-data/fonts/ttf(如果你装的是anaconda,就把它放在anaconda下的文件中)

修改配置文件 /matplotlib/mpl-data/matplotlibrc

1) backend : TkAgg #mac需要修改,windows默认就是TkAgg

2) font.family : Microsoft YaHei

3) font.serif : Microsoft YaHei, ......#(后面的不变,只在前面加雅黑字体)

OK, 大功告成,试试效果吧

注意:要将‘font.family’前边的标注号#去掉

经过修改后,我们run一下代码,哈哈,老祖宗五千年前造的汉子出现了。

                                                          

推荐 0
本文由 霍开拓 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册