我是2天大的Python和一般的编码,我一直致力于制作一个随机的几何图形,它是2mode。要做到这一点我在networkx here在python中的bip geom图尝试
一直在寻找的代码,我开始使用以下逻辑
import networkx as nx
def my_bipartite_geom_graph(a, b, radius, dim):
G=nx.Graph()
A=nx.Graph()
A.name="a node set"
A.add_nodes_from(range(a))
for n in A:
A.node[n]['pos']=[random.random() for i in range(0,dim)]
B=nx.Graph()
B.name="b node set"
B.add_nodes_from(range(b))
for n in B:
B.node[n]['pos']=[random.random() for i in range(0,dim)]
G=nx.disjoint_union(A,B)
nodesa = A.nodes(data=True)
nodesb = B.nodes(data=True)
while nodesa:
u,du = nodesa.pop()
pu = du['pos']
for v,dv in nodesb:
pv = dv['pos']
d = sum(((a-b)**2 for a,b in zip(pu,pv)))
if d <= radius**2:
G.add_edge(u,v)
return G
这将返回一个图形,但显然不是我所期待的。任何指导如何更好地解决这个问题将不胜感激。
最良好的祝愿
看起来好像没什么问题。它出什么问题了? – Avaris 2012-04-06 19:20:53
我曾希望只有A节点连接到B节点(即节点或b节点与b节点之间没有连接..我使用三角形()检查了它是否是双边的,搜索返回了很多三角形,所以我假设我生成的网络不是二部分,因为它只能有4个周期。 – 2012-04-06 19:25:05
啊,我看到了问题。 – Avaris 2012-04-06 19:31:41