【发布时间】:2014-09-06 06:16:47
【问题描述】:
我对图表完全陌生。我有一个 213 X 213 距离矩阵。我一直在尝试使用网络来可视化距离矩阵,我的想法是,当绘制图形时,相距较远的节点将显示为单独的集群。所以我正在创建一个带有代表列索引的节点的图表。我需要跟踪节点以便之后对其进行标记。我需要按特定顺序添加边,所以我需要跟踪节点及其标签。
代码如下:
import networkx as nx
G = nx.Graph()
G.add_nodes_from(time_pres) ##time_pres is the list of labels that I want specific node to have
for i in range(212):
for j in range(i+1, 212):
color = ['green' if j == i+1 else 'red'][0]
edges.append((i,j, dist[i,j], 'green')) ##This thing requires allocation of distance as per the order in dist matrirx
G.add_edge(i,j, dist = dist[i,j], color = 'green')
我现在正在做的方式是分配带有 id 作为数字的节点,这与 time_pres 中的标签索引不同。
【问题讨论】:
-
不清楚你在问什么。你的方法不起作用,还是你在问是否有更好的方法?变量
color和edges在这段代码中的用处在哪里?您能否举一个 2x2 或 3x3 距离矩阵的小例子,让我们直观地了解您想要实现的目标? -
在 3X3 中,每一列将代表一个时间事件。所以我有事件 1->2->3。我想通过用相同颜色对连接相邻节点的边缘进行着色来展示这次演变。我也有通过 $dist$ 属性传递的节点之间的距离。我编写代码的方式,我无法指定节点号和标签。因此,节点号“1”被分配了一个标签,该标签可能是 time_pres 的 1 以外的某个索引。所以我无法记下哪个节点被分配到哪个标签。
-
time_pres变量包含哪些值?给我 9,以 3x3 为例。 -
time_pres =[('person1', '1878'), ('person2','1879'), ...] 而 dist 是一个尺寸为 213 X 213 的 numpy 矩阵。
-
如果我理解正确,请告诉我。如果您有两个带有标签 ('person1', '1878') 和 ('person2', '1879') 以及索引分别为 0 和 1 的节点,那么
time_pres = [('person1', '1878'), ('person2', '1879')]。而dist[0,1]是 ('person1', '1878') 和 ('person2', '1879') 之间的距离。对吗?
标签: python graph data-visualization networkx