Как просмотреть сеть, созданную с графом в Python? - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь создать сеть и хочу просмотреть ее графически.

Я использую список для хранения информации о границе.

Я попробовал следующее:

  from collections import defaultdict
class Graph(object):
    def __init__(self,connections):
        self.graph = defaultdict(set)
        self.addConnections(connections)

    def addConnections(self, connections):
        for node1, node2 in connections:
            self.addEdge(node1, node2)

    def addEdge(self, node1, node2):
        self.graph[node1].add(node2)

    def generateEdges(self): 
        edges = [] 
        for node in self.graph: 
            for neighbour in self.graph[node]: 
                edges.append((node, neighbour))
        self.edges = edges
        return edges

И я пытаюсь просмотреть график следующим образом:

import networkx as nx
import matplotlib.pyplot as plt
from graph import Graph
#create edges for first graph
graph1Edges = [('A','B'), ('A', 'D'), ('B', 'C'), ('C','D')]
graph1 = Graph(graph1Edges)
nx.draw(graph1.generateEdges())
plt.show()

Но, это не работает, пожалуйста, предложите мне способ сделать это, так как я не хочу использовать пакет networkx.

1 Ответ

0 голосов
/ 10 февраля 2019

Вместо использования графа networkx вы попытались реализовать Graph самостоятельно и отобразить его с помощью networkx.Это, конечно, невозможно, поскольку nx.draw ожидает график networkx.

Просто удалите реализацию Graph и запустите:

import networkx as nx
import matplotlib.pyplot as plt

edges = [('A', 'B'), ('A', 'D'), ('B', 'C'), ('C', 'D')]
G = nx.Graph()
G.add_edges_from(edges)
nx.draw_networkx(G)
plt.show()

И вы получите:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...