原文链接:https://www.cnblogs.com/hhh5460/p/4323985.html
【注意】
可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)
1 import matplotlib.pyplot as plt
【效果图】
【方式一】FontProperties
1 2 3 4 5 6 7 8 9 10 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
1 2 3 4 5 6 7 8 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 9 10 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif' ] = ['SimHei' ] 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 12 13 14 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 20 21 22 23 import numpy as npimport matplotlib.pyplot as plt font = {'family' : 'DFKai-SB' , 'weight' : 'bold' , 'size' : '16' } plt.rc('font' , **font) 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