【经验】一劳永逸解决中文显示是大方块,不是乱码(最详细解释,有图有真相)

问题描述

在这里插入图片描述
大家好,我们在用 networkx 显示中文的时候,会发现不能显示中文。

解决办法1

  1. 下载附件中的字体;
  2. 在 jupyter notebook 中执行
import matplotlib
print(matplotlib.__path__)

找到 matplotlib 的路径,然后 cd 到这个路径。 cd 到这个路径之后,继续 cd,cd 到 mpl-data/fonts/ttf 这个路径。 然后把 DejaVuSans.ttf 这个文件换成我们刚刚下在的文件,遂试图找到matplotlib调用的字体文件,还真找到了。因为matplotlib默认调用的为DejaVuSans.ttf字体文件,只要从windows拷贝一个你想要的字体文件,替换DejaVuSans.ttf,就没问题了。

$ mv SimHei.ttf nx.draw(city_graph, city_location, with_labels=True, node_size=10).ttf

其中,用到的 ttf 字体。
在Windows系统C:\Windows\Fonts 路径下

解决办法2

直接把Windows系统C:\Windows\Fonts 路径下所有·文件复制粘贴到(找到 matplotlib 的路径,然后 cd 到这个路径。 cd 到这个路径之后,继续 cd,cd 到 mpl-data/fonts/ttf 这个路径)

plt.rcParams['font.sans-serif'] = ['SimHei']  #  可以选用任何已经存在的字体

在这里插入图片描述
在这里插入图片描述
参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值