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

标签 python graph matplotlib visualization

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

我已经开始使用 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/

相关文章:

python - 如何可视化 IP 地址在 python 中的变化?

python - 在基于类的 View 中覆盖 GET 请求时如何引用表单?

python - 为 Django 创建一个保留顺序的多值字典

c++ - 使用 Barabási-Albert 模型计算和理解无标度网络

graph - 如果值较小,则不显示列 - Google 柱形图

python - 如何绘制正确的分布 TreeMap ?

python - 将新字典添加到现有字典中作为键的值

python - PyCharm:导入错误:没有名为 'websocket' 的模块

java - 在Java中使用BFS的两个城市之间的路径

python - 另存为 .pdf 时,Matplotlib 图会失去透明度