解决 百度AI Studio中matplotlib无法显示中文 问题 分享 编辑
收藏
快速回复
AI Studio平台使用 其他Notebook项目 3902 5
解决 百度AI Studio中matplotlib无法显示中文 问题 分享 编辑
收藏
快速回复
AI Studio平台使用 其他Notebook项目 3902 5

我的语雀链接 https://www.yuque.com/u12136253/hzetst/is0gci  这个链接做了排版

问题描述
在百度的课程《Python小白逆袭大神》中,day3的作业是可视化爬取的《青春有你2》选手数据:绘制小姐姐籍贯分布直方图,X轴为籍贯,Y轴为该籍贯的小姐姐的数量

matplotlib的中文显示会有问题,百度课程给出的解决方案是



import matplotlib.pyplot as plt
import numpy as np
import json
import matplotlib.font_manager as font_manager

# 下载中文字体
!wget https://mydueros.cdn.bcebos.com/font/simhei.ttf
# 将字体文件复制到matplotlib字体路径
!cp simhei.ttf /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/
# 一般只需要将字体文件复制到系统字体目录下即可,但是在aistudio上该路径没有写权限,所以此方法不能用
# !cp simhei.ttf /usr/share/fonts/

# 创建系统字体文件路径
!mkdir .fonts
# 复制文件到该路径
!cp simhei.ttf .fonts/
!rm -rf .cache/matplotlib

plt.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体
plt.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问


这其中有2个问题

找不到参数font.sans-serif
该链接https://mydueros.cdn.bcebos.com/font/simhei.ttf无法访问

 

解决方法
问题解决参考

https://aistudio.baidu.com/aistudio/projectdetail/390895?channelType=0&channel=0 如何在AI Studio数据可视化图像中显示汉字

https://www.jianshu.com/p/7d4f88c62815 Ubuntu 中使用 matplotlib 画图如何正常显示中文

 

从第一个链接可以知道,输入指令可以查看有什么字体支持中文

第一个链接的内容是20年的,当时没有支持中文的字体

# 查看系统可用的ttf格式中文字体
!fc-list :lang=zh | grep ".ttf
现在是21年,paddle更新了中文字体

上述指令的输出

/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular

 

因此,指定matplotlib的字体就可以了 ,通过FontProperties属性

(该字体不是上面显示的,但是也可以用。不懂上面的指令为什么没有找到该字体)

import matplotlib.font_manager as font_manager
import matplotlib.pyplot as plt

myfont = font_manager.FontProperties(fname='/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc')

plt.title('''《青春有你2》参赛选手''',fontsize = 24,FontProperties=myfont)
1
收藏
回复
全部评论(5)
时间顺序
阿修罗
#2 回复于2021-11

棒啊~

0
回复
m
megemini
#3 回复于2022-06

感谢!:)

0
回复
S
Syuhen
#4 回复于2022-06

0
回复
l
lvc
#5 回复于2024-04

字体下载不了了

 

0
回复
牧童羡
#6 回复于2024-06

下载不了字体了

 

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户