Невозможно добавить ребра в граф сети - PullRequest
1 голос
/ 17 апреля 2020

Так что я никогда раньше не использовал Networkx, так что это может быть основа c. В настоящее время я использую пару функций для вывода словарей простых графиков, например, цикл цикла. Например, если я запускаю эту функцию для n = 5, я получаю словарь: {1: [5, 2], 2: [1, 3], 3: [2, 4], 4: [3, 5], 5: [4, 1]}.

Я начал пытаться использовать Networkx для их визуализации и имею следующую функцию для вывода ребер графа:

def generate_edges(graph): # generate edges of the graph

    edges = []

    for node in graph: # checks each node

        for neighbour in graph[node]:

            edges.append((node,neighbour)) # returns the node,neighbour pair as an edge

    return edges

I'm затем используйте следующую функцию для создания визуализации сети:

def visualise(graph):

    edges = generate_edges(graph)
    nodes = list(graph.keys())

    G = nx.graph
    G.add_edges_from(edges)
    G.nodes(data=True)
    nx.write_graphml(G,'so.graphml')
    print(nx.info(G))

    return G

graph = generate_simplegraph('cycle',10)
visualise(graph)

, где 'цикл' - это тип графика, а 10 - это количество узлов. Я получаю сообщение об ошибке:

модуль 'networkx.classes.graph' не имеет атрибута 'add_edges_from'

Может кто-нибудь сказать мне, почему я получаю эту ошибку и как это исправить пожалуйста? Все, что я хочу сделать, это визуализировать сеть. Также я импортировал networkx как nx.

1 Ответ

1 голос
/ 17 апреля 2020

graph должен быть классом в networkx, я считаю.

G=nx.Graph()

not:

G = nx.graph
...