wns9778.com_威尼斯wns.9778官网

热门关键词: wns9778.com,威尼斯wns.9778官网
wns9778.com > 计算机教程 > wns9778.comPython实现matplotlib显示中文的方法详解

原标题:wns9778.comPython实现matplotlib显示中文的方法详解

浏览次数:197 时间:2019-06-08

本文实例讲述了Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法。分享给大家供大家参考,具体如下:

本文实例讲述了Python实现matplotlib显示中文的方法。分享给大家供大家参考,具体如下:

Matplotlib中文显示问题——用例子说明问题

【注意】

#-*- 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.jb51.net - test')
plt.xlabel(u'u2103',fontproperties='SimHei')
#在这里,u'u2103'是摄氏度,前面的u代表unicode,而引号里的内容,是通过在网上查找“℃”这一个符号的unicode编码得到的。这里的“摄氏度”是中文,要显示的话需要在后面加上fontproperties属性即可,这里设置的字体为黑体。
plt.ylabel(u'幅度',fontproperties='SimHei')#也可以直接显示中文。
plt.show()

可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)

运行效果:

import matplotlib.pyplot as plt



import pylab as plt

wns9778.com 1

【效果图】

Matplotlib中支持LaTex语法,如果要显示各种美观的数学公式和数学符号,可以稍微学习下,很有用。具体语法可参见(http://wiki.gwrite.googlecode.com/hg/misc/LaTex-EquRef.html?r=1de19067fce5484bb5c39cbd049f6a47f7d8a2e9)

wns9778.com 2

可以这样使用:

【方式一】FontProperties

复制代码 代码如下:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 步骤一
# ...
font = FontProperties(fname=r"c:windowsfontssimsun.ttc", size=14) # 步骤二
plt.xlabel("x轴", fontproperties=font) # 步骤三
plt.ylabel("y轴", fontproperties=font)
plt.title("标题", fontproperties=font)
plt.show()

ylabel('Rice(' r'$mumathrm{mol}$' ' ' '$ mathrm{m}^{-2} mathrm{s}^{-1}$' ')')

总的来说,很丑陋。

中文与LaTex共同显示问题:

【方式二】 fontproperties

在坐标轴标题中同时显示中文以及带有上下标的各种数学单位,需要分两步:

import matplotlib.pyplot as plt
# ...
plt.xlabel("x轴")
plt.ylabel("y轴", fontproperties="SimSun") # 步骤一  (宋体)
plt.title("标题", fontproperties="SimHei") #     (黑体)
plt.show()

1、根据上述显示中文的方法,先将中文标题加上;

灵活,另一个优点:不污染全局字体设置

2、对于单位,使用text函数进行添加,text函数用法见(http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.text)。

【方式三】rcParams

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'$(mumathrm{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")
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)
#...
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《wns9778.com,Python字符串操作技巧汇总》及《Python入门与进阶经典教程

简洁的用法。缺点:污染全局字体设置。(所以需要第二步骤)

本文由wns9778.com发布于计算机教程,转载请注明出处:wns9778.comPython实现matplotlib显示中文的方法详解

关键词: wns9778.com

上一篇:MongoDB中文档的更新操作示例详解

下一篇:没有了