【python】数据可视化——解决matplotlib显示中文乱码

问题描述:标题出现乱码

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

plt.figure(figsize=(10, 5))
plt.plot(x, y, 'C0', linewidth=3, linestyle='solid')
plt.title('第一副图')

plt.show()

【python】数据可视化——解决matplotlib显示中文乱码_第1张图片

报错信息

D:\anaconda3\envs\test1\lib\tkinter_init_.py:839: UserWarning: Glyph 31532 (\N{CJK UNIFIED IDEOGRAPH-7B2C}) missing from current font.
func(*args)
D:\anaconda3\envs\test1\lib\tkinter_init_.py:839: UserWarning: Glyph 19968 (\N{CJK UNIFIED IDEOGRAPH-4E00}) missing from current font.
func(*args)
D:\anaconda3\envs\test1\lib\tkinter_init_.py:839: UserWarning: Glyph 21103 (\N{CJK UNIFIED IDEOGRAPH-526F}) missing from current font.
func(*args)
D:\anaconda3\envs\test1\lib\tkinter_init_.py:839: UserWarning: Glyph 22270 (\N{CJK UNIFIED IDEOGRAPH-56FE}) missing from current font.
func(*args)
这个警告信息是由于matplotlib默认使⽤的字体中不包含中⽂字符引起的

解决办法一

更换字体:首先,确保你安装了支持中文字符的字体,例如"SimHei"、"Microsoft YaHei"等。然后,通过设置Matplotlib的全局字体来更换字体。

import matplotlib

matplotlib.rcParams['font.sans-serif'] = ['SimHei'] #font.sans-serif参数来指定"SimHei"字体
matplotlib.rcParams['axes.unicode_minus'] = False	#axes.unicode_minus参数用于显示负号

演示

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

plt.figure(figsize=(10, 5))
plt.plot(x, y, 'C0', linewidth=3, linestyle='solid')
plt.title('第一副图')

plt.show()

解决办法二:永久解决办法

import matplotlib
print(matplotlib.matplotlib_fname())

D:\anaconda3\envs\test1\lib\site-packages\matplotlib\mpl-data\matplotlibrc
打开这个文件

找到#font.family:font.serif: 开头的这两行
将两⾏的注释#去掉,并在font.serif: 后添加⾃⼰想加入的中文字体名
【python】数据可视化——解决matplotlib显示中文乱码_第2张图片
去除行首#,将True改为False,如axes.unicode_minus: False

运行效果

【python】数据可视化——解决matplotlib显示中文乱码_第3张图片

你可能感兴趣的:(Python学习,matplotlib)