Как построить python узлов сети Pyviz - PullRequest
3 голосов
/ 30 апреля 2020

Я использую python пакет pyvis для визуализации узлов. Разве это дерево Пизиса можно рендерить только на отдельные html? мы не можем построить с помощью пакета matplotlib?

from pyvis.network import Network
import pandas as pd

got_net = Network(height="750px", width="100%", bgcolor="#222222", font_color="white")

# set the physics layout of the network
got_net.barnes_hut()
got_data = pd.read_csv("https://www.macalester.edu/~abeverid/data/stormofswords.csv")

sources = got_data['Source']
targets = got_data['Target']
weights = got_data['Weight']

edge_data = zip(sources, targets, weights)

for e in edge_data:
    src = e[0]
    dst = e[1]
    w = e[2]

    got_net.add_node(src, src, title=src)
    got_net.add_node(dst, dst, title=dst)
    got_net.add_edge(src, dst, value=w)

neighbor_map = got_net.get_adj_list()

# add neighbor data to node hover data
for node in got_net.nodes:
    node["title"] += " Neighbors:<br>" + "<br>".join(neighbor_map[node["id"]])
    node["value"] = len(neighbor_map[node["id"]])

got_net.show("gameofthrones.html") 

В приведенном выше коде узлы отображаются в отдельном html на новой вкладке браузера, я хочу отобразить их вместо HTML что-то вроде

plt.plot(got_net)

Я ценю если кто-то может помочь понять этот пакет.

1 Ответ

2 голосов
/ 11 мая 2020

Из документации pyviz вы можете установить необязательный параметр notebook в True в конструкторе Network, и если вы находитесь в блокноте Jupyter, он отобразит его:

got_net = Network(height="750px", width="100%", bgcolor="#222222", font_color="white", notebook=True)
...
got_net.show("gameofthrones.html")
...