networkx使用Graphviz画图要点
本文涉及的工具
- Graphviz(官网)
- Pygraphviz(安装Pygraphviz的正确姿势)
- networkx(pip install networkx)
import networkx as nx
G1 = nx.MultiDiGraph()
node = ['A', 'B', 'C', 'D', 'E']
edge = [('A', 'B'), ('B', 'C'), ('C', 'D'),('C', 'E')]
for i in node:G1.add_node(i)
for i in edge:G1.add_edge(i[0], i[1])
G1.graph['edge'] = {'arrowsize': '0.5'} # 箭头大小
G1.graph['node'] = {'shape':'box'} # 节点形状
G1.graph['graph'] = {'splines': 'spline', 'rankdir':'LR'} # 线型与布局方向
A = to_agraph(G1)
A.layout('dot') # 布局方法
A.draw('./graph/test2.png')
1.修改节点边框颜色
G.add_node(node, color="red")
2. 修改节点背景颜色
G1.add_node(i, style='filled')
G1.graph['node'] = {'shape':'box', 'color':'red'}
3.中文乱码
在上述图中增加一个中文节点,发现中文无法正常显示
解决方法,在节点属性中添加指定中文字体,即可正常显示
G1.graph['node'] = {'shape':'box', 'color':'red', 'fontname':'FangSong'}
4. 其他节点与边属性
节点形状(shape),节点的高度宽度或半径(width,height),边的长度(len),边的线形(spline),箭头大小(arrowsize),箭头方向(dir)等等,每个属性内部的内容详见Graphviz官网
5. 图形布局要点
Graphviz使用自动排版,提供了多种布局引擎,个人比较喜欢dot和neato排版,如果节点较多且节点标签文字比较长的话建议使用dot排版,否则neato排版更紧凑些,如下图所示。
当使用dot排版时,不建议使用curved曲线,因为该线形会穿过节点,影响美观性,建议使用spline样条线以及ortho正交线。下图展示了使用dot排版和curved曲线,可以看到部分曲线穿过了节点(为了隐去部分敏感数据信息,将中文字体使用乱码掩盖)
当画图时发现布局较难看的时候,可以尝试给边添加标签和权重,通过添加标签会对线条布局机制产生一定的影响,而权重则影响边的长度,权重越大的边,越短且越直。下面通过一个案例说明添加标签与权重对布局的影响。
第一幅图为使用dot布局机制和spline样条线,未添加标签和权重时的结果,可以看到左侧存在一条较粗的线对图片的美观程度产生较大影响。
添加标签,可以看到布局发生了调整,第一幅中左侧较粗的线现在调整到了图的中部
添加权重,那根较粗的线变成了垂直的线,图结构更加清晰,布局美观
networkx使用Graphviz画图要点相关推荐
- networkx —— 基本操作及画图
这几天在用networkx,官方文档是这个,很全也很详细,这里简单记录一些简单的用法和使用过程中的菜鸡看法. 这篇主要记一下networkx基本图创建和如何画图. 环境 Python 3.6.3 ne ...
- graphviz画图软件介绍及使用感受
1 介绍 一次偶然的机会接触到了画图软件graphviz,它主要用于画有向图.<数据结构>课程里的数据结构图等比较方便.它与tikz的比较为: tikz可以画任何种类的图.因为tikz就相 ...
- graphviz画图之张柏芝前夫是谢霆锋
张柏芝前夫是谢霆锋,谢霆锋前女友是王菲,王菲老公是李亚鹏,李亚鹏前女友叫瞿颖,瞿颖现男友是张亚东,朴树有个前女友叫周迅,周迅有个前男友叫李亚鹏,王菲前夫是窦唯,窦唯有个堂弟叫窦鹏,窦鹏有个前女友叫周迅 ...
- 关于python中Graphviz画图时报错的解决方法
软件要安装好,软件下载地址 系统环境要配置好,bin文件夹和dot.exe文件都要配置到环境变量里面 pip install graphviz tree.export_graphviz里面的out_f ...
- Python-matplotlib画图要点【大总结】
文章目录 一.x,y坐标图 1.基本操作 2.进阶操作 (1)解决中文乱码情况 (2)调整图像大小 (3)加标题.坐标文字.坐标轴标签 (5)去掉上边框 二.柱状图 1.柱状图画图基本操作 2.柱状图 ...
- python graphviz画图
文章目录 今日心得 graphviz安装与配置 dot和graphviz dot graphviz 作图 step1:导入graphviz库 step:创建一个表 添加点 点之间创建边 输出画的图 生 ...
- graphviz画图
1 2 3 4 5
- Graphviz解决图论简单画图
Graphviz解决最简单图论画图 参考文章:十分钟学会graphviz画图-简书 这里给出最最最最常用且简单的说明 1.安装 1.1下载 假设你是windows用户,那么你可以从这个网站获得最简单最 ...
- Graphviz使用
官方文档: http://www.graphviz.org graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言,然后使用布局引擎来解析此脚本 ...
最新文章
- 小白都能看懂的神经网络教程:从原理到优化如此简单
- jupyter配置默认启动目录
- selenium 测试
- iOS-获取通讯录联系人信息
- 二分图 crf的军训
- 在Dialog中实现下拉框效果并对下拉框赋自定义的值
- OpenGL键盘消息实例
- [课程复习] 数据结构之经典题目回顾 (一)选择题、填空题1
- calcite连接mysql_使用Calcite做Sql语法解析
- Arduino笔记-呼吸流水灯
- js ---- 数组操作
- VS2012 professional和VS2012 Ultimate的区别
- 职高计算机专业c语言_重庆市职业高中计算机专业C语言试题
- 无人驾驶汽车系统入门(十六)——最短路径搜索之A*算法
- JavaScript中defer的作用
- 四周型文字环绕怎么设置_word艺术字四周型环绕怎么设置
- arduino编码器计数_ARDUINO旋转编码器
- Docker:overlay2浅析
- 交友项目【查询好友动态,查询推荐动态】实现
- 《惢客创业日记》2018.12.12(周三)创业者从0到1的10个阶段(三)