关于igraph
因为课程需要,在信息资源管理的课程上曾学过gephi, 它是一款基于JVM的复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具。
igraph与gephi其实很相似,它是为了进行社会网络分析而创建的一个包,在处理复杂网络问题中用的比较多的C语言函数库,不过它也提供了R,Python的接口。它的速度快,而且函数命令与图形展现更为丰富。它可以处理有向网络和无向网络,但无法处理混合网络。
可以形成如下的效果:
igraph在ubuntu上的安装方法
用了一个晚上+一个早上的时间,在安装的路上兜圈圈,很多东西搜索的时候比较杂乱,希望整理起来方便以后查找的人。
方法一
sudo pip install python-igraph
接下来会出现以下的情况:
Installing collected packages: python-igraph
Running setup.py install for python-igraph
Cannot find the C core of igraph on this system using pkg-config.
We will now try to download and compile the C core from scratch.
Version number of the C core: 0.7.1-2
We will also try: 0.7.1
主要是因为igraph是依赖于c语言的,需要C编译器,pip会自动帮你下载,运气好的话就successfully install,也可能会安装不成功,这个时候呢你可以试下以下的命令行
pip install --upgrade pip
pip install python-igraph
如果还不行就针对具体问题具体解决咯。
方法二
sudo add-apt-repository ppa:igraph/ppa
sudo apt-get update # update your package database
sudo apt-get install python-igraph
这个方法会自动帮你下载igraph的依赖包,在上面的方法无效的情况下可以试一试这个方法。
igraph的简单使用
其实学好一个工具包,更推荐的是看它相应的document,里面会有比较详细的介绍,在这里推荐:http://www.cs.rhul.ac.uk/home/tamas/development/igraph/tutorial/tutorial.html#layouts-and-plotting,主要是英文会比较难(学好英文对程序员真的很重要。)
以下做一个简单的测试:
from igraph import *
g = Graph(1)
print (g)
PS:这里分享一个经历
我在安装igraph的时候,其实已经安装成功了,在终端上也可以运行,但是在Pycharm上却始终用不了,用尽了各种方法,编译环境也没有任何问题,就在我想放弃的时候,突然在网上看到python程序员常犯的错误,因为我把文件的命名和包一样了,所以在导入包的时候就犯傻了。
常见错误:与Python标准库模块命名冲突
Python的一个优秀的地方在于它提供了丰富的库模块。但是这样的结果是,如果你不下意识的避免,很容易你会遇到你自己的模块的名字与某个随Python附带的标准库的名字冲突的情况(比如,你的代码中可能有一个叫做email.py的模块,它就会与标准库中同名的模块冲突)。
这会导致一些很粗糙的问题,例如当你想加载某个库,这个库需要加载Python标准库里的某个模块,结果呢,因为你有一个与标准库里的模块同名的模块,这个包错误的将你的模块加载了进去,而不是加载Python标准库里的那个模块。这样一来就会有麻烦了。
所以在给模块起名字的时候要小心了,得避免与Python标准库中的模块重名。相比起你提交一个“Python改进建议(Python Enhancement Proposal (PEP))”去向上要求改一个标准库里包的名字,并得到批准来说,你把自己的那个模块重新改个名字要简单得多。