之前,我们发现可以利用matplotlib和NetworkX画网络图,但是受到种种限制,实际画图会有一些问题,并且图片的质量并不是很高。
如果用Latex写论文的话,能够直接插入文档是最好的旋转。那么TeX下,当仁不让的工具包就是tikz。其矢量图的功能非常强大,并且已经由Jürgen Hackl扩展出了https://github.com/hackl/tikz-network的工具包,使用和其他网络图工具类似。只需要定义node和edge即可,并且可以实现非常复杂和漂亮的图。这里首先介绍最基本的安装和用法。如何用python产生数据文件在下一篇中总结。
这篇文章重要包括tikz-network的:安装
使用node的参数
edge的参数
多层网络
安装
在下面的连接中下载文件,真正有用的就是tikz-network.sty,其它均为例子和文档。hackl/tikz-networkgithub.com
如果你经常使用Latex,可以通过安装和刷数据库的方式放在相应的目录下面。或者直接放在当前目录下。tikz-network.sty依赖多个其它的包,因此在使用的时候注意报错提示,安装缺少的其他包。我用的是ctex比较老的版本,其中没有etex这个包,可以到davidcarlisle/dpctex下载安装。如果你没有安装过latex,建议安装ctex的完整版,或者到Comprehensive TeX Archive Network安装TexLive。
使用
tikz-network作为tikz的扩展,使用方法跟tikz使用一致,下面有一段最简单的格式,大家可以套用。
\documentclass{scrreprt}
\usepackage{tikz-network}
\begin{document}
\begin{tikzpicture}
\end{tikzpicture}
\end{document}
只需要在tikzpicture中添加内容即可。
node
在tikz-network中,节点叫做Vertex,因此定义一个节点的方法和产生的图片如下。
\documentclass{scrreprt}
\usepackage{tikz-network}
\begin{document}
\begin{tikzpicture}
\Vertex{A}
\end{tikzpicture}
\end{document}