本文实例讲述了Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法。分享给大家供大家参考,具体如下:
Matplotlib中文显示问题——用例子说明问题
1
2
3
4
5
6
7
8
9
10
|
#-*- coding: utf-8 -*- from pylab import * t = arange( - 4 * pi, 4 * pi, 0.01 ) y = sin(t) / t plt.plot(t, y) plt.title( 'www.zzvips.com - test' ) plt.xlabel(u '\u2103' ,fontproperties = 'SimHei' ) #在这里,u'\u2103'是摄氏度,前面的u代表unicode,而引号里的内容,是通过在网上查找“℃”这一个符号的unicode编码得到的。这里的“摄氏度”是中文,要显示的话需要在后面加上fontproperties属性即可,这里设置的字体为黑体。 plt.ylabel(u '幅度' ,fontproperties = 'SimHei' ) #也可以直接显示中文。 plt.show() |
运行效果:
Matplotlib中支持LaTex语法,如果要显示各种美观的数学公式和数学符号,可以稍微学习下,很有用。具体语法可参见(http://wiki.gwrite.googlecode.com/hg/misc/LaTex-EquRef.html?r=1de19067fce5484bb5c39cbd049f6a47f7d8a2e9)
可以这样使用:
中文与LaTex共同显示问题:
在坐标轴标题中同时显示中文以及带有上下标的各种数学单位,需要分两步:
1、根据上述显示中文的方法,先将中文标题加上;
2、对于单位,使用text函数进行添加,text函数用法见(http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.text)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import matplotlib.pyplot as plt import numpy as np t = np.linspace( 0 , 10 , 1000 ) y = np.sin(t) plt.plot(t, y,label = u '正弦曲线 (m)' ) plt.xlabel(u "时间" , fontproperties = 'SimHei' ) plt.ylabel(u "振幅" , fontproperties = 'SimHei' ) plt.title(u "正弦波" , fontproperties = 'SimHei' ) # 添加单位 t = plt.text( 6.25 , - 1.14 ,r '$(\mu\mathrm{mol}$' + ' ' + '$ \mathrm{m}^{-2} \mathrm{s}^{-1})$' ,fontsize = 15 , horizontalalignment = 'center' ,verticalalignment = 'center' ) #在这里设置是text的旋转,0为水平,90为竖直 t.set_rotation( 0 ) # legend中显示中文 plt.legend(prop = { 'family' : 'SimHei' , 'size' : 15 }) plt.savefig( "C:\\Users\\Administrator\\Desktop\\test.png" ) |
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.sina.com.cn/s/blog_b3a4f3f80101gq2i.html