0

現在、フォーム (node1、node2、weight_of_edge) のトリプレットのリストがあります。間にエッジがあるノードがレイアウト内で互いに近くにとどまるようにプロットする方法はありますか?

4

1 に答える 1

1

ネットワークの作成と操作のための多くのツールを提供するNetworkXライブラリを確認する必要があります。

トリプレットのリストに基づく基本的な例:

list_of_triplets = [("n1", "n2", 4),
                    ("n3", "n4", 1),
                    ("n5", "n6", 2),
                    ("n7", "n8", 4),
                    ("n1", "n7", 4),
                    ("n2", "n8", 4),
                    ("n8", "n9", 6),
                    ("n4", "n9", 12),
                    ("n4", "n6", 1),
                    ("n2", "n7", 4),
                    ("n1", "n8", 4)]

# The line below in the code change the list in a format that take
# a weight argument in a dictionary, to be computed by NetworkX

formatted_list = [(node[0], node[1], {"weight":node[2]}) for node in list_of_triplets]

グラフを描画するには:

import matplotlib.pyplot as plt
import networkx as nx

G = nx.Graph()
G.add_edges_from(formatted_list)
nx.draw(G)
plt.show()

ノード

于 2013-02-25T16:28:01.987 に答える