我希望根据连接的数量,使节点大小不同。但是,这个功能似乎不存在于pyvis中?也许我遗漏了什么,或者它可能没有得到完全的支持。
下面是我的示例代码:
import networkx as nx
import matplotlib.pyplot as plt
from pyvis.physics import Physics
from pyvis.network import Network
G = nx.Graph()
G.add_edges_from([(1,2), (2,3), (2,4), (3,4)])
d = dict(G.degree)
print(d.keys())
print([v * 100 for v in d.values()])
nx.draw(G, nodelist=d.keys(), node_size=[v * 100 for v in d.values()])
plt.show()
G2 = Network(height="1500px", width="75%",bgcolor="#222222",font_color="white",directed=True)
G2.from_nx(G)
G2.show("network_map.html")
发布于 2021-12-21 18:57:28
您可以通过使用networkx中的set_node_attributes
函数在几行中做到这一点。它允许您添加/修改节点属性(请参阅更多信息这里)。请参阅下面使用它更改节点大小的位置:
import networkx as nx
import matplotlib.pyplot as plt
from pyvis.physics import Physics
from pyvis.network import Network
G = nx.Graph()
G.add_edges_from([(1,2), (2,3), (2,4), (3,4)])
scale=10 # Scaling the size of the nodes by 10*degree
d = dict(G.degree)
#Updating dict
d.update((x, scale*y) for x, y in d.items())
#Setting up size attribute
nx.set_node_attributes(G,d,'size')
G2 = Network(height="1500px", width="75%",bgcolor="#222222",font_color="white",directed=True)
G2.from_nx(G)
G2.show("network_map.html")
输出结果是:
https://stackoverflow.com/questions/70438752
复制相似问题