python plt.show() 或者 dataframe.plt() 无法显示中文标签的解决方案

定位原因: 主要是matplotlib     字体库缺失,没有中文字体导致的

解决方法:

1, 安装中文字体;

    官网下载简体中文 搜索Simhei.ttf

   找Mac 自带的中文字体,将其从mac自身的字体库,粘贴到 ``` matplotlib``` 的字体库

2,修改配置:    

# 找到matplotlib的字体库位置,配置位置

import matplotlib

# 查找字体路径

print(matplotlib.matplotlib_fname())

# 查找字体缓存路径

print(matplotlib.get_cachedir())

2,可以看到配置库的位置为:

/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

字体库的位置在相同目录下的font/ttf文件夹

/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf

3, 字体放在对应目录:

    拷贝下载的SimHei -> /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/

4, 修改配置: 

vim  /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

第一个地方:

# font.family         : sans-serif   

操作: 去掉注释 

font.family         : sans-serif

第二个地方:

#font.sans-serif     :DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

操作: 去掉注释,添加我们添加进去的字体:SimHei

font.sans-serif     :SimHei,DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

5,重新加载

from matplotlib.font_manager import _rebuild

_rebuild()

6,查看是否有SimHei 字体存在

Fonts = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for e in Fonts:

    print(e)

# 搜索SimHei,如果存在就可以下一步,如果不存在,就重启电脑,然后重复5,6,差不多就没问题了

7, 测试中文显示问题

#测试:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=‘SimHei'

plt.title('你好')

plt.show()

你可能感兴趣的:(python plt.show() 或者 dataframe.plt() 无法显示中文标签的解决方案)