通过错误代码确定汽车的最佳 Python-NetworkX 图形架构

问题描述 投票:0回答:1

我是一名机械师,拥有 200 辆左右的汽车。每辆车都有我想要绘制的错误代码。最终根据错误代码对类似汽车进行可视化和比较。我是否创建名为 Car 1、Car 2 ... Car N... 等的节点,然后创建边作为其各自错误代码的列表?如果节点有共同的错误代码,则只有连接节点的边?那么,我该如何比较它们呢?比如说,1 号车的错误代码为 1、2 和 3,2 号车的错误代码为 2、3 和 4?如何在图表上比较它们?

非常感谢任何帮助!

python-3.x networkx
1个回答
0
投票

我宁愿使用venn2_worldcloud

by @PaulBrodersen)制作维恩图

from matplotlib_venn_wordcloud import venn2_wordcloud

data = {
    "Car 1": {1, 2, 3},
    "Car 2": {2, 3, 4},
}  # or any equivalent input


def cmp(errs, c1, c2, freqs=None, **kwargs):
    venn2_wordcloud(
        sets=[
            set(map(str, e))
            for e in (errs[c1], errs[c2])
        ],
        set_labels=[c1, c2],
        set_colors=["cyan", "red"],
        **kwargs,
    )

cmp(data, "Car 1", "Car 2")

enter image description here

但是如果您坚持使用 ,您可以使用

draw_labeled_multigraph
:

from itertools import combinations

data = {
    "Car 1": {1, 2, 3},
    "Car 2": {2, 3, 4},
    "Car 3": {5, 1},
    "Car 4": {3},
} # with more cars ..

G = nx.MultiGraph(
    [
        (c1, c2, {"error": e})
        for (c1, e1), (c2, e2) in combinations(data.items(), 2)
        for e in e1 & e2
    ]
)

draw_labeled_multigraph(G, "error")

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.