【发布时间】:2020-12-01 10:52:06
【问题描述】:
我的网络包含大约 100 个高度连接的节点。现在,所有的标签看起来都很乱。我试图删除label 将标签属性设置为None 或'',但随后显示的是id。有没有办法隐藏标签或只显示选定节点和边的标签?
【问题讨论】:
标签: pyvis
我的网络包含大约 100 个高度连接的节点。现在,所有的标签看起来都很乱。我试图删除label 将标签属性设置为None 或'',但随后显示的是id。有没有办法隐藏标签或只显示选定节点和边的标签?
【问题讨论】:
标签: pyvis
从文档 (https://pyvis.readthedocs.io/en/latest/_modules/pyvis/network.html) 我看到Network 类的add_node 方法包含逻辑测试if label。如果标签是 None 或空字符串 (""),这将评估为 False,但如果您尝试使用除了空格 " " 来近似空字符串,则评估为 True。
如果上述情况失败,您可以尝试编辑add_node 中的代码,或者(也许最好)定义您自己的Network,它继承自原始代码并覆盖add_node 方法。也许是这样的:
from pyvis.network import Network
class AbsoluteLabelNetwork(Network):
"""A version of the pyvis.network.Network class that always uses the label provided"""
def add_node(self, n_id, label=None, shape="dot", **options):
"""See parent class for docstr, with the exception that label will always be used"""
assert isinstance(n_id, str) or isinstance(n_id, int)
node_label = label # note: change from package version
if n_id not in self.node_ids:
n = Node(n_id, shape, label=node_label, font_color=self.font_color, **options)
self.nodes.append(n.options)
self.node_ids.append(n_id)
请注意,这些可能的解决方案未经测试,如果它们对您有帮助,我会很感兴趣。
【讨论】: