先参考这篇文章:

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. 学习谭浩强老师的《C程序设计》,必配《C程序设计伴侣》!
  2. Win2008 server backup系统备份组件安装
  3. oracle backup arch,ORCLE RMAN备份脚本
  4. React Hook基本使用踩坑指南
  5. python 字典定义日志用法_python中字典(Dictionary)用法实例详解
  6. 通过 WIFI 用 adb 调试 Android 设备
  7. 基于云平台的家居综合监测管理系统的设计与实现
  8. ajax请求web服务返回json格式
  9. Qt工作笔记-QT_BEGIN_NAMESPACE与QT_END_NAMESPACE的理解
  10. 逻辑运算和作用域的问题
  11. 吴恩达深度学习5.1笔记_Sequence Models_循环序列模型
  12. 在HTML中使用JavaScript
  13. VirtualBox基础使用
  14. opencv kmeans聚类 实现图像色彩量化
  15. wsus下游服务器状态,计算机长期没有向WSUS报告状态
  16. 数据库MySQL中更新数据库update
  17. 12级计算机动画制作专业,计算机专业技术12级是什么意思?
  18. RAW、YUV、RGB、JPEG格式简介
  19. 本地计算机无法启动dhcp服务,提示Windows无法启动DHCP Client服务如何解决
  20. border渐变 ios_iOS一个方法搞定view渐变色

热门文章

  1. 安卓Toast随时跟新以及自定义Toast
  2. 货币政策传导与货币政策调控-中国视角下的宏观经济
  3. 静默安装Oracle数据库
  4. Zebec获BNB Chain生态大力支持,ZBC或继续登录一线平台
  5. [Rust GUI]fltk-rs的helloworld
  6. 阅读文献“Language Models are Unsupervised Multitask Learner”(GPT-2)
  7. 收集2016年值得学习的源码、第三方和插件
  8. 74cms前台sql注入
  9. Linux·UART协议
  10. MATLAB插值笔记