在Python绘图中,尤其是使用Matplotlib和Seaborn等库时,经常会出现中文显示异常的问题。本文对个人本地知识库《Python绘图:plt中文字体+公式显示》和《Python绘图:seaborn风格的中文字体设置方法》两则笔记的总结,供查阅。

1. 基础:Matplotlib中的中文显示问题

问题描述

Matplotlib绘图时默认情况下的中文字符可能无法正常显示,通常会显示为方框或乱码。

解决方案

直接设置Matplotlib的全局参数:

示例代码如下:

import matplotlib.pyplot as plt

plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
from matplotlib import rcParams

config = {
    "font.family": 'serif',  # 设置字体族
    "font.size": 12,         # 设置字体大小
    "mathtext.fontset": 'stix',  # 设置数学公式字体
    "font.serif": ['SimSun'],  # 设置中文字体为宋体
}
rcParams.update(config)

2. 拓展:Seaborn风格的中文显示问题

问题描述

Seaborn是基于Matplotlib的高级绘图库,因此中文显示问题与Matplotlib类似。若直接使用plt.style.use('seaborn'),即使设置了plt的字体参数也会导致中文不显示,因为seaborn库需要单独指定字体。

解决方案

在Matplotlib绘图基础上,导入seaborn库单独设置其字体:

import seaborn as sns # 导入seaborn库
sns.set(font='SimHei') # 设置seaborn字体参数

同时,Matplotlib的全局参数仍然生效。