如何绘制 python pyviz 网络节点
How to plot python pyviz network nodes
我正在使用 python pyvis 包进行节点可视化。难道 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)
如果有人能帮助理解这个包,我将不胜感激。
从 pyviz documentation 你可以在 Network
构造函数中将可选参数 notebook
设置为 True
,如果你在 jupyter notebook 中,它将显示它:
got_net = Network(
height="750px",
width="100%",
bgcolor="#222222",
font_color="white",
notebook=True # here
)
...
got_net.show("gameofthrones.html")
在 Network
构造函数中设置 notebook = True
然后按如下方式添加它解决了我的实现问题:
from IPython.core.display import display, HTML
...
got_net.show("gameofthrones.html")
display(HTML("gameofthrones.html"))
我正在使用 python pyvis 包进行节点可视化。难道 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)
如果有人能帮助理解这个包,我将不胜感激。
从 pyviz documentation 你可以在 Network
构造函数中将可选参数 notebook
设置为 True
,如果你在 jupyter notebook 中,它将显示它:
got_net = Network(
height="750px",
width="100%",
bgcolor="#222222",
font_color="white",
notebook=True # here
)
...
got_net.show("gameofthrones.html")
在 Network
构造函数中设置 notebook = True
然后按如下方式添加它解决了我的实现问题:
from IPython.core.display import display, HTML
...
got_net.show("gameofthrones.html")
display(HTML("gameofthrones.html"))