gpt4 book ai didi

python - 我如何使用 Matplotlib 可视化连接矩阵?

转载 作者:太空狗 更新时间:2023-10-30 00:33:15 25 4
gpt4 key购买 nike

我正在尝试可视化二分集问题的连接矩阵。我如何以最好的方式做到这一点?

我已经开始使用 yed 的图形程序:

example

圆圈描述了红色和蓝色之间的某种联系,而方 block 则描述了另一种联系。红色和蓝色方 block 上都会有某种文字。

但是用 matplotlib 生成这个图形会更好,因为我想在运行时生成它并附上数据。我将如何继续这样做?我的数据看起来有点像这样:

数据:

name_blue name_red Connection Type
bluepart1 redpart1 1
bluepart1 redpart2 1
bluepart1 redpart3 1
bluepart3 redpart2 2
bluepart4 redpart2 2
...

等等。我想将名称标签写在蓝色/红色方 block 上,以便用户知道哪个是哪个。

后续问题:我如何从中生成一个节点部分标记为蓝色/红色的图形?有点像这样:

graphexample

但是节点反射(reflect)了它们的二分性。我对此仍然一无所知,主要是因为我不知道如何用 matplotlib 解决这个问题。我希望得到一些关于如何将其可视化的好建议,也许还有一个示例实现可以为我指明方向。

最佳答案

尝试使用 networkx .您可以使用它在节点和链接上显示具有特定颜色的图表以匹配您的数据。

这是一个例子:

import itertools
import networkx as nx
import matplotlib.pyplot as plt
edgelist = [(u,v,(u+v)%2) for u,v in itertools.product(range(3),range(3,6))]
G = nx.Graph()
for u,v,t in edgelist:
G.add_edge(u,v,attr_dict={'t':t})
ecolors = tuple('g' if G[u][v]['t'] == 1 else 'm' for u,v in G.edges())
nx.draw_networkx(G,node_color='rrrccc',edge_color=ecolors)
plt.show()

Simple Example

关于python - 我如何使用 Matplotlib 可视化连接矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com