本系列文章配套代码获取有以下两种途径:
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1jG-rGG4QMuZu0t0kEEl7SA?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Data_Visualization
-
在代码中指定中文字体:
-
找到matplotlib字体文件(文件默认路径为C:Users用户名.matplotlib),打开fontList.json,查找中文字体如simHei,Microsoft YaHei,song,kai等,分别对应简体黑、微软雅黑、宋体、楷体等。查找到之后,其对应的name字段值即为我们接下来将要设置的中文字体名。 -
使用matplotlib.font_manager.FontManager().ttflist语句查看系统字体。
plt.rcParams['font.sans-serif'] = ['SimHei'] ## 设置中文字体
或者
plt.rcParams['font.family'] = 'SimHei' ## 设置中文字体
TIPS:
font sans-serif是Matplotib中的一个参数,用于设置无衬线字体的名称。它可以是一个字符串,也可以是一个字符串列表,用于指定多个备选字体。如果指定的字体不存在,则会使用默认字体。
fontfamily是Matplotib中的另一个参数,用于设置字体族的名称。它可以是一个字符串,也可以是一个字符串列表,用于指定多个备选字体族。如果指定的字体族不存在,则会使用默认字体族。在Matplotib中,常见的字体族包括sans-serif(无衬线字体)、serif(衬线字体)、monospace(等宽字体)。
# 设置全局字体
plt.rcParams["font.sans-serif"] = "Microsoft YaHei"
plt.plot([0,1,2,3], [0,1,2,3], linestyle="--")
plt.title(label="图表标题" , fontsize="xx-large")
plt.xlabel(xlabel="X轴标题", fontsize="xx-large")
plt.ylabel(ylabel="Y轴标题", fontsize="xx-large")
plt.show()
通过rcParams设置中文字体时会把图形中所有中文字符设置为相同的字体,如果想为坐标轴标签、刻度、图形标题设置不同的字体,可以通过如下方式完成:
-
可以使用matplotlib.font_manager.FontProperties根据本地字体文件(.ttf)创建字体;
-
然后在调用函数xlabel()/ylabel()、xticks()/yticks()、title()或轴域相关方式时使用参数fontproperties来指定字体。
plt.plot([0,1,2,3], [0,1,2,3], linestyle="--")
# 读取字体
font1 = matplotlib.font_manager.FontProperties(fname=r'./Fonts/simfang.ttf')
font2 = matplotlib.font_manager.FontProperties(fname=r'./Fonts/站酷锐锐体.ttf')
font3 = matplotlib.font_manager.FontProperties(fname=r'./Fonts/站酷叶小凉尺素体.ttf')
# 使用参数fontproperties来指定字体
plt.title(label="图表标题" , fontsize="xx-large" , fontproperties=font1)
plt.xlabel(xlabel="X轴标题", fontsize="xx-large" , fontproperties=font2)
plt.ylabel(ylabel="Y轴标题", fontsize="xx-large" ,fontproperties=font3)
plt.show()
-
修改Matplotlib的配置文件:
matplotlib.matplotlib_fname()
plt.plot([0,1,2,3], [0,1,2,3], linestyle="--")
plt.title(label="图表标题" , fontsize="xx-large")
plt.xlabel(xlabel="X轴标题", fontsize="xx-large")
plt.ylabel(ylabel="Y轴标题", fontsize="xx-large")
plt.show()
matplotlib.rcParams['axes.unicode_minus']=False
更多内容可以前往官网查看:
https://matplotlib.org/stable/
本篇文章来源于微信公众号: 码农设计师