matplotlib 中文字体问题
简介
Matplotlib 是一个 Python 的绘制二维图形的模块。它利用了 克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。
系统版本Distributor ID: DebianDescription: Debian GNU/Linux 8.5 (jessie)Release: 8.5Codename: jessiematplotlib版本---Metadata-Version: 2.0Name: matplotlibVersion: 1.5.1
全局修改
1.修改字体
查找系统中的中文字体,如果没有找到中文字体的话就安装一个
fc-list :lang=zh -f "%{family}\n"
文泉驿微米黑,文泉驛微米黑,WenQuanYi Micro Hei文泉驿等宽正黑,文泉驛等寬正黑,WenQuanYi Zen Hei MonoDroid Sans FallbackFixed文泉驿正黑,文泉驛正黑,WenQuanYi Zen HeiFixed文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono文鼎PL简报宋,AR PL SungtiL GB文泉驿点阵正黑,文泉驛點陣正黑,WenQuanYi Zen Hei Sharp
将/usr/local/lib/python3.4/dist-packages/matplotlib/mpl-data/matplotlibrc
拷贝到 ~/.local/share/matplotlib/matlotlibrc
vim ~/.local/share/matplotlib/matplotlibrc
2.修改符号
按照第一步修改后,中文字体可以正常展示,但是负号却不能展示。所以需要修改符号,不使用Unicode字符。
局部修改
# coding:utf-8# 字体设置def conf_zh(font_name): from pylab import mpl mpl.rcParams['font.sans-serif'] = [font_name] mpl.rcParams['axes.unicode_minus'] = False def run(): import matplotlib.pyplot as plt import numpy as np t = np.arange(-5*np.pi, 5*np.pi, 0.001) y = np.sin(t)/t my_post = plt.plot(t, y) plt.title('title中文测试') plt.xlabel('这里是X坐标') plt.ylabel('这里是Y坐标') plt.show()if __name__ == "__main__": conf_zh("Droid Sans Fallback") run()