目录

一、检测图形是否支持中文

二、解决方案

临时方案:每次画图时都带着这几段代码(....挺麻烦)

永久方案:安装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 # 显示负号
  • 永久方案:安装simhei.tff 字体

1、下载字体


下载地址:https://us-logger1.oss-cn-beijing.aliyuncs.com/SimHei.ttf

2、找到需要放置文件的地址

# 查找Matplotlib配置文件
import matplotlib
matplotlib.matplotlib_fname()


#地址结果
‘’‘

'/Users/wangyixing/opt/anaconda3/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc'

’‘’

3、前往地址

         访问以上文件,在macOS系统中,在访达(Finder)菜单中的“前往”(Go)选项卡下找到“访问目录…”(Go To Folder…),打开并输入;在Windows系统中,可直接在资源管理器的地址栏输入。可以看到fonts文件夹和matplotlibrc配置文件,fonts文件夹用于存放字体文件,将SimHei.ttf文件复制到其下的ttf文件夹里。

4、修改配置文件

        修改配置文件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()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐