Python实现matplotlib显示中文的方法详解

时间:2021-05-22

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

【注意】

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

import matplotlib.pyplot as pltimport pylab as plt

【效果图】

【方式一】FontProperties

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

总的来说,很丑陋。

【方式二】 fontproperties

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

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

【方式三】rcParams

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

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

【方式四】rc

import matplotlib.pyplot as pltfont = {'family' : 'SimHei', 'weight' : 'bold', 'size' : '16'}plt.rc('font', **font) # 步骤一(设置字体的更多属性)plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)#...plt.xlabel("x轴")plt.ylabel("y轴")plt.title("标题")plt.show()

灵活的用法。缺点:影响全局字体(所以需要第二步骤)

【总结】

方式二用时才设置,且不会污染全局字体设置,更灵活
方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

【测试代码】

import numpy as npimport matplotlib.pyplot as pltfont = {'family' : 'DFKai-SB', 'weight' : 'bold', 'size' : '16'}plt.rc('font', **font) # pass in the font dict as kwargsplt.rc('axes',unicode_minus=False)x = np.linspace(0, 10, 1000)y = np.sin(x)z = np.cos(x**2)plt.figure(figsize=(8,4))plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)plt.plot(x,z,"b--",label="$cos(x^2)$")plt.xlabel("x轴")plt.ylabel("y轴")plt.title("标题")plt.ylim(-1.2,1.2)plt.legend()plt.show()

运行结果:

【附录】

一些中文字体的英文名

宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMingLiU 细明体 MingLiU 标楷体 DFKai-SB 仿宋 FangSong 楷体 KaiTi 隶书 LiSu 幼圆 YouYuan 华文细黑 STXihei 华文楷体 STKaiti 华文宋体 STSong 华文中宋 STZhongsong 华文仿宋 STFangsong 方正舒体 FZShuTi 方正姚体 FZYaoti 华文彩云 STCaiyun 华文琥珀 STHupo 华文隶书 STLiti 华文行楷 STXingkai 华文新魏 STXinwei

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

希望本文所述对大家Python程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章