2

我有一个包含大约 100 个高度连接的节点的网络。现在,所有的标签看起来都很乱。我试图删除将label标签属性设置为Noneor '',但随后显示的是 id。有没有办法隐藏标签或只显示选定节点和边的标签?

4

1 回答 1

1

从文档(https://pyvis.readthedocs.io/en/latest/_modules/pyvis/network.html)我看到类的add_node方法Network包含逻辑测试if label。这将评估标签False是否为None空字符串(""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)

请注意,这些可能的解决方案未经测试,因此如果它们对您有所帮助,我会很感兴趣。

于 2020-09-29T10:11:56.170 回答