先参考这篇文章:

Ubuntu系统python3.6版本,networkx画关系图显示中文处理_u013617229的博客-CSDN博客

Ubuntu系统python3.6版本,networkx画关系图显示中文处理
最近在学习用networkx库分析关系网。安装好networkx,配合matplotlib在最后生成图像的时候,结点一直显示方框,看了很多网友分享的解决方法,结合自己最后处理掉问题的思路,在此分享,希望可以帮助到有需要的朋友。

本文介绍的主要还是用的较多的字体文件替换法
最初的状况,如图显示,简直很恐怖,

显示问题
当运行代码时,显示如下:字体没有找到,返回默认字体DejaVu Sans

/home/****/anaconda3/lib/python3.6/site-packages/matplotlib/font_manager.py:1316:
 UserWarning: 
 findfont: Font family ['sans-serif'] not found. 
 Falling back to DejaVu Sans
 (prop.get_family(), self.defaultFamily[fontext]))
1
2
3
4
5
6
分析matplotlib中font_manager源代码
发现变量self.defaultFamily[fontext];
if best_font is None or best_score >= 10.0:
            if fallback_to_default:
                warnings.warn(
                    'findfont: Font family %s not found. Falling back to %s' %
                    (prop.get_family(), self.defaultFamily[fontext]))
                default_prop = prop.copy()
                default_prop.set_family(self.defaultFamily[fontext])
                return self.findfont(default_prop, fontext, directory, False)
1
2
3
4
5
6
7
8
顺着self.defaultFamily[fontext]找下去,
发现,默认字体的确是DejaVu Sans,顺便验证了下;

self.ttffiles = findSystemFonts(paths) + findSystemFonts()
        self.defaultFamily = {
            'ttf': 'DejaVu Sans',
            'afm': 'Helvetica'}
        self.defaultFont = {}
1
2
3
4
5
可以看出上述代码中,寻找系统字体函数中有个变量paths,继续找;

paths = [os.path.join(rcParams['datapath'], 'fonts', 'ttf'),
                 os.path.join(rcParams['datapath'], 'fonts', 'afm'),
                 os.path.join(rcParams['datapath'], 'fonts', 'pdfcorefonts')]
1
2
3
发现字体存放在os.path路径下, 通过函数rcParams['***']找到

解决问题
根据os.path返回的结果,结合其他网友分享的文章得到最终的字体位置:
os.path + site-packages/matplotlib/mpl-data/fonts/ttf
将想使用的字体命名为DejaVuSans.ttf替换上述路径下的DejaVuSans.ttf即可。

显示如下

兜了一圈,其实最开始代码warning时就显示了调用地址,在这个地址基础上,再结合网友的方法其实就可以了。
/home/****/anaconda3/lib/python3.6/site-packages/matplotlib/font_manager.py:1316:

个人错误地方:开始路径找错了,一直在/anaconda3/pgks/matpltlib/lib/python3.6/site-packages/matplotlib路径下更改字体和配置文件,路径后半部分一样的,误以为是调用的库,浪费了很多时间。

查找自己路径为:

这个路径一定要查找对,不是 一直认为的 /usr/local/lib/python3.6/dist**** 这个路径了。

以上只是一个方案,第二个方案是不用替换,而是怎加字体ttf.

这个需要参考这篇博文:

Matplotlib不能显示中文 — Font family ['sans-serif'] not found警告_wtySama的博客-CSDN博客

最重要的是 一定要删除 cache 缓存配置,要不 不生效。    之前一直卡在这里。。

Ubuntu系统python3.6版本,networkx画关系图显示中文处理相关推荐

  1. linux 中文tty,Ubuntu Kylin 14.04版本让tty1~6显示中文

    前一段时间升级失败,最后通过tty处理了问题.当时遇到tty无法显示中文的问题.当时是设置为英文解决了问题. 现在有点时间,查找些资料.解决了tty中文的问题. 请按步骤: 1.安装fbterm,网上 ...

  2. ubuntu系统查看gcc版本及版本切换

    写在前面: 自己的测试环境是Ubuntu16.04 ,安装了gcc-5.gcc-7,通过下面的方式从实现默认的gcc-5切换到gcc-7,亲测有效-- 1.查看自己当前的gcc版本 gcc -v 通过 ...

  3. Ubuntu系统切换jdk版本

    Ubuntu系统切换java虚拟机版本 1.查看java版本 其中java版本包括jdk(java开发版本),以及jre(java运行环境),因此我们需要兼顾两者的版本对应,才能够完全,因此先来查看电 ...

  4. 安装ubuntu系统16.04版本

    本人安装是在Windows的系统上操作,上一次安装成功,之后很久没安装了.忘记了,所以就简单的做做一个记录,方便自己下一次不用花时间和精力去百度.不过还是推荐一个博客,我觉得他写的还不错,博客地址为: ...

  5. php graphviz,Graphviz - 用指令来画关系图吧!

    简介 Graphviz 是一个运用广泛的命令行绘图软体,不过说是绘图软体,它能绘的图并不是一般人想像中的漫画或 logo,而是数学意义上的 "graph",比较通俗的说法就是「关系 ...

  6. 在ubuntu系统下安装缺少的字体(一般缺少中文字体)

    在ubuntu系统下安装缺少的字体 cite:Ubuntu LaTeX 环境配置:https://www.cnblogs.com/xqmeng/p/13931222.html 第一步:下载缺少的字体 ...

  7. echarts画关系图,指定有的关系为双向箭头,有的关系为单向箭头

    echarts关系图里 有箭头.无箭头.双箭头连线同时存在 首先series里面设置 edgeSymbol: ['arrow', 'arrow'],edgeSymbolSize: [10,10] 然后 ...

  8. 【源码阅读技巧一】查看类关系图,接口实现关系图(idea版本)Diagrams关系图

    我们在阅读源码的时候,往往需要理清楚各个类,各个接口之间的关系,然后再去理解他的设计思路,有个大概理解,然后去阅读源码,就容易很多,那么今天就来讲一下如何使用idea来查看关系图: 一.查看类的父类, ...

  9. powerdesigner画关系图_「俯首甘为孺子牛」李可染牧牛图赏析

    李可染,中国近代杰出的画家.诗人,画家齐白石的弟子.李可染自幼即喜绘画,13岁时学画山水.43岁任中央美术学院教授,49岁为变革山水画,行程数万里旅行写生.72岁任中国美术家协会副主席.中国画研究院院 ...

最新文章

  1. maven-assembly-plugin 和 maven-shade-plugin打包插件的区别
  2. linux ksh怎么查找僵尸进程,Unix 进程管理
  3. android通过webservice验证用户 .
  4. 推荐几份能够帮助你学习 CSS3 的实用帮助手册
  5. jsp 9对象4作用域
  6. APUE Unix环境高级编程读书笔记
  7. ZZW_shell脚本中的调用MYSQL传参及注意的问题
  8. linux几个不常用但是很有用的命令
  9. 汽车短视频大行其道,新能源汽车平台杉车网如何“领风骚”?
  10. 人工晶状体在线公式A常数优化——多线程
  11. 五步制定企业的使命、愿景和价值观
  12. word画图关闭自动捕捉功能
  13. Vue中在线引用iconfont图标
  14. steam社区打不开,解决mac无法打开steam社区的方法
  15. Leetcode刷题100天—剑指 Offer 50. 第一个只出现一次的字符(队列)—day13
  16. python中dispatch_在django,dispatch的用途是什么?
  17. TopFreeTheme精选免费模板【20130827】
  18. 书单来了!大厂的技术牛人在读什么:华为篇
  19. Flutter使用ClipPath画一个聊天气泡
  20. 「 LaTex 」写论文,插入Acknowledge

热门文章

  1. 模拟CMOS集成电路设计入门学习(1)
  2. Image Segmentation论文学习翻译-SLIC Superpixels Compared to State-of-the-Art Superpixel Methods
  3. 宅急送 项目第四天 取派员和区域管理
  4. FindBugs级别
  5. 【全志A33】在Ubuntu下烧录程序
  6. 软件测试测试用例执行多少条,软件测试用例执行中有效的策略
  7. Web 容器、HTTP 服务器 、Servlet 容器区别与联系
  8. 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统
  9. 如何从电脑彻底清除mysql_如何彻底删除MYSQL
  10. js模拟post表单的提交