Networkx:为给定的节点集创建完整的图形

时间:2018-09-21 16:22:06

标签: python-3.x graph networkx minimum-spanning-tree

我有一个列表为c4_leaves = [56,78,90,112]。我正在尝试使用c4_leaves中的这些元素作为节点来创建完整的图形。这是我尝试过的;

    V_ex = c4_leaves
    G_ex = nx.Graph() 
    G_ex.add_nodes_from(V_ex)
    G_ex = nx.complete_graph(4)


    for u,v in G_ex.edges():
        G_ex[u][v]['distance'] = distance(points33, u, v)

然后上图的最小生成树为:

 T_ex= nx.minimum_spanning_tree(G_ex, weight='distance')
 F_ex = list(T_ex.edges())

当我绘制G_ex时,它给了我正确的图形,但是当我打印最小生成树的细节时,它显示了T_ex.nodes() = [0,1,2,3,56,78,90,112]

有人可以告诉我我正在做的错误吗?

3 个答案:

答案 0 :(得分:0)

命令G_ex = nx.complete_graph(4)创建了一个完整的图形G,其节点分别为0、1、2和3。您可以向G添加更多图形,但是它具有这些节点。

答案 1 :(得分:0)

与其使用 @Override public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) { JSONResponse jsonResponse = response.body(); data = new ArrayList<>(Arrays.asList(jsonResponse.getResult())); if (data != null){ for (int i = 0; i<data.size(); i++) { data.setSerialNumber(i);}} madapter = new RecyclerAdapter(data); recyclerView.setAdapter(madapter); } (它会与其他节点生成一个新的完整图形),而是按照以下步骤创建所需的图形:

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };

string json = JsonConvert.SerializeObject(product);
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small"
//   ]
// }

对于有向图,请使用:

complete_graph

答案 2 :(得分:0)

这是一个古老的问题。但是,我仍然要投入两分钱。我面临着同样的问题。我不确定实际问题的阻塞点是什么,但是我会写下我所做的事情。

因此,我想创建一个包含四个节点(56、78、90和112)的完整图形。我有一个清单。我查看了<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Unlisted Games</title> <style> h1{ text-align:center; font-family: Verdana, Geneva, Tahoma, sans-serif; } a{ color: black; font-size: 30px; } .vertical-align { display: inline } </style> </head> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script> <script src="background.js"></script> <h1>Unlisted Games</h1> <ul> <li><a href="Website.com">Capture the Flag</a></li> <li><a href="REEEEEEEEEEE.com">Flappy Bird</a></li> <li><a href="google.net">Snake</a></li> </ul> </body> </html>的定义,这就是我所看到的

complete_graph

这意味着它可以使用迭代器。本着同样的精神,我尝试了以下代码

Signature: nx.complete_graph(n, create_using=None)
Docstring:
Return the complete graph `K_n` with n nodes.

Parameters
----------
n : int or iterable container of nodes
    If n is an integer, nodes are from range(n).
    If n is a container of nodes, those nodes appear in the graph.
create_using : NetworkX graph constructor, optional (default=nx.Graph)
   Graph type to create. If graph instance, then cleared before populated.

Examples
--------
>>> G = nx.complete_graph(9)
>>> len(G)
9
>>> G.size()
36
>>> G = nx.complete_graph(range(11, 14))
>>> list(G.nodes())
[11, 12, 13]
>>> G = nx.complete_graph(4, nx.DiGraph())
>>> G.is_directed()
True

因此,您就可以从列表中构建出完整的图形。

我希望这能回答问题。