目录
一、检测图形是否支持中文
二、解决方案
临时方案:每次画图时都带着这几段代码(....挺麻烦)
永久方案:安装simhei.tff 字体
1、下载字体下载地址:https://us-logger1.oss-cn-beijing.aliyuncs.com/SimHei.ttf
2、找到需要放置文件的地址
3、前往地址
4、修改配置文件
三、结束
前言:
Pandas绘图依赖的Matplotlib库在安装初始化时会加载一个配置文件,这个文件包含了将要用到的字体,而中文字体不在这个文件中,所以会造成在绘图过程中图形中的中文显示为方框或乱码的情况。
import pandas as pd
pd.Series([1,2,5,4],index=['标签1','标签2','标签3','标签4']).plot()
正常显示图片如下图,非正常显示:标签2个字会显示成方块;
1.1正常显示图# jupyter notebooks plt 图表配置
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (15.0, 8.0) # 固定显示大小
plt.rcParams['font.family'] = ['sans-serif'] # 显示中文问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文问题
plt.rcParams['axes.unicode_minus'] = False # 显示负号
# 查找Matplotlib配置文件
import matplotlib
matplotlib.matplotlib_fname()
#地址结果
‘’‘
'/Users/wangyixing/opt/anaconda3/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc'
’‘’
访问以上文件,在macOS系统中,在访达(Finder)菜单中的“前往”(Go)选项卡下找到“访问目录…”(Go To Folder…),打开并输入;在Windows系统中,可直接在资源管理器的地址栏输入。可以看到fonts文件夹和matplotlibrc配置文件,fonts文件夹用于存放字体文件,将SimHei.ttf文件复制到其下的ttf文件夹里。
修改配置文件matplotlibrc。在修改前备份一下这个文件以便于在修改错误时还原。用纯文本编辑器(notepad++、Sublime等,不能用记事本,更不能用Word)打开。
(1)使用查找功能查到font.family: font.sans-serif,去掉前面的注释符#;
font.family : sans-serif
(2)使用查找功能查到font.sans-serif : ,在DejaVu Sans前添加SimHei(注意:和你下载的字体文件名称大小写保持一致)
font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde,
(3)最后找到axes.unicode_minus,去掉注释并将值设置为False(这一步我当时没有改,也可以正常显示中文字体)
sans-serif axes.unicode_minus : False
最后重新运行代码,就可以正常显示中文啦!
import pandas as pd
pd.Series([1,2,5,4],index=['标签1','标签2','标签3','标签4']).plot()