问题描述:标题出现乱码
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()
报错信息
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: 后添加⾃⼰想加入的中文字体名
去除行首#,将True改为False,如axes.unicode_minus: False文章来源:https://www.toymoban.com/news/detail-815534.html
运行效果
文章来源地址https://www.toymoban.com/news/detail-815534.html
到了这里,关于【python】数据可视化——解决matplotlib显示中文乱码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!