【发布时间】:2019-07-02 02:05:00
【问题描述】:
对不起,如果这很粗略:这是我在 Stackoverflow 上的第一篇文章!我很抱歉没有发布代码,但我所做的一切都不复杂(也许这就是问题所在),所以描述应该有效。如果我不擅长描述问题,我也很抱歉,因为我是 Python 新手;我不太确定如何在没有数据的情况下重新创建示例:(
在使用 NetworkX 时,我经常在从 pandas 导入数据后运行具有数千个节点的大型无向图(我们称之为 G)。绝大多数节点只有一个或两个边缘,这对我来说只是噪音。我感兴趣的是具有大量节点的集群,而这实际上是少数。
然后我将运行 nx.connected_components 命令来列出 G 包含的所有子图集的长列表,查看排名靠前的结果,并一次打印一个我感兴趣的单个子图。
因此,当我获得所有连接组件子图(通常很长)的生成器列表/字典时,我通常也会只查看前 50-100 个结果。因为这些往往有我正在寻找的东西。
我试过nx.connected_component_subgraphs,但是有太多我不需要这种方式,这几乎和一次可视化整个网络一样糟糕。
简而言之:我如何获取 nx.connected_components 给我的集合生成器/列表(然后我将其缩短到前 50 个)并将其制成新图表?
我尝试将nx.component_components 的输出转换为列表,但都是集合。
没有错误消息。
【问题讨论】:
-
欢迎来到 StackOverflow。我认为@Andreas 的评论并不完全有根据,但我确实认为带有一些虚假数据的最小工作示例(MWE)在这里会有所帮助。证明问题只是 MWE 的原因之一。 IMO 更重要的是,它显示了您自己对问题的假设,并迫使您指定解决方案的形式。例如,在您的情况下,标题说您正在努力解决绘图问题,而文本建议(对我而言)您只想将组件融合到一个网络中。很少有人会尝试解决一个不明确的问题。
-
感谢两位的意见;承认很尴尬,但我在制作自己的 MWE 时遇到了麻烦,而且我知道你所说的一切 @Andreas。感谢下面的专业人士,我得到了需要的解决方案,现在我还学会了如何让我自己的例子向前发展。很抱歉在我这么新的时候发帖,但是,我自己尝试了很多事情,以至于我不知道从哪里开始,并尽力描述问题。