Python教程

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

本文主要是介绍Python实现matplotlib显示中文的方法详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

【注意】

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

1 import matplotlib.pyplot as plt
1 import pylab as plt

【效果图】

【方式一】FontProperties

1 2 3 4 5 6 7 8 import matplotlib.pyplot as plt from 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

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

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

【方式三】rcParams

1 2 3 4 5 6 7 8 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()

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

【方式四】rc

 

1 2 3 4 5 6 7 8 9 10 11 import matplotlib.pyplot as plt font = {'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()

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

【总结】

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

【测试代码】

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import numpy as np import matplotlib.pyplot as plt font = {'family' : 'DFKai-SB',     'weight' : 'bold',     'size'  : '16'} plt.rc('font', **font) # pass in the font dict as kwargs plt.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实现matplotlib显示中文的方法详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!