安装或设置

欢迎来到 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

从源代码安装

源文件存档

  1. https://pypi.python.org/pypi/networkx/ 下载源代码或获取最新版本
  2. 解压缩并将目录更改为源目录(它应该包含文件 README.txt 和 setup.py)。
  3. 运行 python setup.py install 进行构建和安装
  4. (可选)如果安装了鼻子,则运行 nosetests 来执行测试。

从 GitHub 安装

  1. 克隆 NetworkX 存储库( 有关选项,请参阅 https://github.com/networkx/networkx/

    git clone https://github.com/networkx/networkx.git
    
  2. 将目录更改为 NetworkX

  3. 运行 python setup.py install 进行构建和安装

  4. (可选)如果安装了鼻子,则运行 nosetests 来执行测试。

如果你无权在系统上安装软件,则可以使用 --user--prefix--home 标志安装到另一个目录中来 setup.py。

要求要使用 NetworkX,你需要 Python 2.7,3.3 或更高版本

可选包

  1. NumPy:提供图形的矩阵表示,并在一些图算法中用于高性能矩阵计算。 ( http://scipy.org/下载)
  2. SciPy:提供图形的稀疏矩阵表示和许多数值科学工具。 ( http://scipy.org/下载)
  3. Matplotlib:提供灵活的图形绘制。 ( http://matplotlib.sourceforge.net/)
  4. GraphViz 与 PyGraphviz( http://pygraphviz.github.io) 或 pydotplus( https://github.com/carlos-jenkins/pydotplus) 结合使用 :提供图形绘制和图形布局算法。 ( http://graphviz.org)
  5. PyYAML:YAML 格式读写所必需的。 ( http://pyyaml.org)

3http//conda.pydata.org/miniconda.html 2https//networkx.github.io/documentation/development/install.html