Matplotlib中文显示问题通常与字体设置和系统环境相关。Matplotlib 中显示中文时常见的问题是中文字符显示为方框或乱码,这通常是因为 Matplotlib 默认的字体不支持中文字符。解决这个问题,需要指定一个支持中文的字体。Matplotlib 提供了几种方法来设置字体,以确保中文可以正确显示。

1、使用font_manager的FontProperties解决

通过FontProperties来设置字符及大小,来解决中文显示的问题,代码如下,

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()

2、使用matplotlib中方法的fontproperties参数解决

通Matplotlib中xlabel()ylabel()title()的参数直接指定字体,代码如下,

import matplotlib.pyplot as plt

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

3、使用matplotlib的rcParams来解决

使用matplotlib的rcParams设置字体,会全局生效,如不想全局生效,可以参考上面的方法。

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()

4、使用matplotlib的rc来解决

使用matplotlib的rcParams设置字体,会全局生效,如不想全局生效,可以使用fontproperties参数的方法。

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()

5、常用字体名

字体名称

常见字体系列名称

宋体

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

推荐文档