安装或设置
欢迎来到 Graphs 世界。如果你已连接数据,则可能需要其中一种类型的图形来对这些模式进行建模。使用图表可以完成几项工作,例如映射流量模式,管理配水网络,社交媒体分析等等……我们需要能够创建与每个数据相关的数据的节点和边缘。
NetworkX 是一个处理图形数据库创建/导入/导出/操作/算法/绘图的库。你可以开始使用多种类型的网络图。例如:Facebook 可能会将他们的用户放在一个普通的 Graph()
中
import networkx as nx
facebook = nx.Graph()
facebook.add_node('you')
facebook.add_node('me')
if both_agree_to_be_friends('you','me'):
facebook.add_edge('you','me') #order isn't important here.
Facebook 将使用常规的 Graph()
,因为节点之间的边缘没有任何特殊之处。这个 Facebook 示例只能在节点之间有一个边缘(友谊)。
另一种类型的图形是有向图。Twitter 会使用有向图,因为节点有方向。在 Twitter 我可以关注你,但你不必跟着我。所以我们可以用这段代码表示:
import networkx as nx
twitter = nx.DiGraph()
twitter.add_node('you')
twitter.add_node('me')
twitter.add_edge('me','you') #order is important here.
这就是 Twitter 如何设置’我’来跟随’你’,而不是相反。
还有 MultiGraphs()
和 MultiDiGraphs()以及两个节点之间需要多个边缘的情况。这四种类型涵盖了可以用图表表示的各种问题。如果需要,可以向节点和边添加数据字典。该模块的文档令人难以置信。每个算法都经过深入研究和实施。我希望你喜欢和它一起工作。
安装说明: 此处提供了有关安装 NetworkX 的详细说明。
与任何其他 python 软件包一样,NetworkX 可以使用 pip,Miniconda / Anaconda 和源代码安装。
用 pip 安装
pip install networkx
将尝试查找并安装与你的操作系统和 Python 版本匹配的适当版本的 NetworkX。
要使用 pip,你需要安装 setuptools。
如果要从 GitHub 安装开发版本,请使用该命令
pip install git://github.com/networkx/networkx.git#egg=networkx
Miniconda 和 Anaconda 使用 conda
进行软件安装/更新
NetworkX 目前与 Anaconda 一起 安装 。 Miniconda默认不附带 NetworkX。
你可以使用以下命令将 NetworkX 更新/安装到最新版本:
conda install networkx
或者如果你想更新 NetworkX 安装
conda update networkx
从源代码安装
源文件存档
- 从 https://pypi.python.org/pypi/networkx/ 下载源代码或获取最新版本 。
- 解压缩并将目录更改为源目录(它应该包含文件 README.txt 和 setup.py)。
- 运行
python setup.py install
进行构建和安装 - (可选)如果安装了鼻子,则运行 nosetests 来执行测试。
从 GitHub 安装
-
克隆 NetworkX 存储库( 有关选项,请参阅 https://github.com/networkx/networkx/ )
git clone https://github.com/networkx/networkx.git
-
将目录更改为 NetworkX
-
运行
python setup.py install
进行构建和安装 -
(可选)如果安装了鼻子,则运行 nosetests 来执行测试。
如果你无权在系统上安装软件,则可以使用 --user
,--prefix
或 --home
标志安装到另一个目录中来 setup.py。
要求要使用 NetworkX,你需要 Python 2.7,3.3 或更高版本
可选包
- NumPy:提供图形的矩阵表示,并在一些图算法中用于高性能矩阵计算。 ( http://scipy.org/下载)
- SciPy:提供图形的稀疏矩阵表示和许多数值科学工具。 ( http://scipy.org/下载)
- Matplotlib:提供灵活的图形绘制。 ( http://matplotlib.sourceforge.net/)
- GraphViz 与 PyGraphviz( http://pygraphviz.github.io) 或 pydotplus( https://github.com/carlos-jenkins/pydotplus) 结合使用 :提供图形绘制和图形布局算法。 ( http://graphviz.org)
- PyYAML:YAML 格式读写所必需的。 ( http://pyyaml.org)
3 : http : //conda.pydata.org/miniconda.html 2 : https : //networkx.github.io/documentation/development/install.html