python(和networkx)的forceatlas2算法

ForceAtlas2的Python项目详细描述


这是gephi的forceatlas2布局算法到python 2和 python 3(带有networkx的包装器)。

安装

唯一严格的依赖是numpy。强烈推荐赛松 根据图表的不同,它将加速10-100倍。 两者都可以安装:

pip install numpy pip install cython

要使用networkx包装函数,显然需要networkx。

然后要安装此软件包,它是典型的:

python setup.py install

示例用法

定义了两个核心功能:

  • forceatlas2.forceatlas2接受邻接矩阵并可选 初始位置和其他可选参数。它用这个来 计算布局。
  • forceatlas2.forceatlas2网络布局 返回与NetworkX兼容的布局。

在NetworkX中使用:

import matplotlib.pyplot as plt import networkx import random import forceatlas2 G = networkx.karate_club_graph() pos = { i : (random.random(), random.random()) for i in G.nodes()} # Optionally specify positions as a dictionary l = forceatlas2.forceatlas2_networkx_layout(G, pos, niter=1000) # Optionally specify iteration count networkx.draw_networkx(G, l) plt.show()

注意,我的编码风格是非pythonic的,因为我不使用函数 文档字符串。你得看看函数定义 在forceatlas2.py中查看所有潜在的 论据。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript点击文本(文本链接到web url)如何打开   java将一个按钮替换为另一个按钮   J2ME上的java音频,我不知道哪里出了问题?   java异常仅在调试+断点中引发   图形按钮文本在4Gb Ram和IBM Java 1.5中消失   java如何在输入错误的用户名和/或密码时将用户从登录控件重定向到错误页面?   java对象的计算时代有什么好处?   加密限制了应用程序功能的启动   swing只有在我移动鼠标时才会显示组件。帮助(爪哇)   使用Spring进行java密码加密/解密   Java8Java。时间:如何更改一周中的某一天和一天的开始时间?   java Android:设置文本视图中来自另一个活动的文本不起作用   如何在java中创建ActionEvent类的对象?   java Tomcat 7和无效的密钥库格式   GWT面板类型的java问题   字符输入java中的异常   带有文件输出的java JOptionPane   java Kotlin泛型声明站点方差<在T>构造中   java是非对话框,带进度