问题描述
大家好,我们在用 networkx 显示中文的时候,会发现不能显示中文。
解决办法1
下载附件中的字体;在 jupyter notebook 中执行import matplotlibprint(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'] # 可以选用任何已经存在的字体
参考