python-2.7 - 可以使用哪些 Networkx 图?

标签 python-2.7 matplotlib graph networkx

我有混合性质的数据。数据包含混合在一起的节点、边和社区,我想将它们绘制成图表并可视化它们以理解模式。我正在寻找类似附图的东西。 enter image description here这里不知道学位。我确实检查了networkx文档,但找不到任何接近我正在寻找的内容。这是一个无向且无向的图。我可以分离数据并将它们绘制成不同的格式,但是当涉及到实时分离时,这是不可能的。数据像流一样涌来,这些独立的节点可以或也可能在未来的数据出现中形成社区,因此无法将它们分开。

数据模式如下所示

2344
2424 3535
2445
2434 5525 3454 4335 2355
2342 3453 5555 2425 5255
3423 2525
2344
5234 3455 4555

节点、边和社区在时间间隔内表现出重复行为

最佳答案

您可以使用 here 中发现的方法/函数 add_nodes_from()add_edges_from()here来自 NetworkX 的标准无向图类。这样,您就可以随着数据流的到来逐步创建图表。 您所要做的就是将数据转换为正确的格式并将其“逐行”传递到两个函数中。他们只会将节点或边添加到您的图表中(如果它们尚不存在)。 add_edges_from() 还会添加已添加边的新节点,但这显然不适用于只有一个节点的数据行,因为一个节点不形成边。 我建议做这样的事情:

import networkx as nx

# create empty graph
G = nx.Graph()

# read data
data = ...

# assuming you can acces the lines of your data through an iterator, add them to the graph
for line in data:
    G.add_nodes_from(line)
    # get the number of nodes in the data line
    number_of_nodes = get_number_of_nodes(line)
    if number_of_nodes > 1:
        # get edgelist from data line and add it to the graph
        edgelist = get_edgelist(line)
        G.add_edges_from(edgelist)

当然,“转换器函数”get_number_of_nodes()get_edgelist() 还需要一些工作,但这是一个开始......

关于python-2.7 - 可以使用哪些 Networkx 图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807257/

相关文章:

list - 预期为 'collections.Iterable' ,改为 Optional[list]

python - 散点图螺旋向外而不是堆栈的注释 - matplotlib

java - 如何解决java.util.NoSuchElementException : for HashMaps and ArrayLists?

c - main 之前的段错误

python - 如果 pandas 数据框中另一列的值相同,我如何减去 2 列

python - Python 3 和 matplotlib 中的 Unicode 绘图标记

python - Scrapy:导入错误:没有名为管道的模块

python - 如何分组并绘制它

python - matplotlib 带有更改标签的 3D 绘图

r - 在不切断图形或丢失数据的情况下更改 ggplot 中的 y 轴限制