具有较大视觉节点的图(AV元组列表)?

时间:2018-08-18 20:08:31

标签: python networkx

我想创建一个图形,其中节点是大正方形,列出了几个属性值对。

[  a1 : v1 ]    [  a1 : v1 ]
[  a2 : v2 ]----[  a5 : v1 ]
     |
     |
[  a3 : v1 ]
[  a4 : v2 ]

我该如何在networkx中做到这一点?

1 个答案:

答案 0 :(得分:1)

如果我理解您的问题,您想要做的就是自定义节点的形状和标签。

可以使用draw_networkx_nodes函数中的 node_shape 参数来自定义形状。
要自定义标签,可以使用draw_networkx_labels函数中的 label 参数。

考虑以下示例:

import networkx as nx
import matplotlib.pyplot as plt

graph = nx.grid_graph(dim=[2,2])

labels = {}
labels[(0,0)] = "a1:1\nb1:1"
labels[(0,1)] = "a2:2\nb2:2"
labels[(1,0)] = "a3:3\nb3:3"
labels[(1,1)] = "a4:4\nb4:4"


pos = nx.spring_layout(graph)

nx.draw_networkx_nodes(graph, pos=pos, node_shape="s", node_size=500)
nx.draw_networkx_edges(graph, pos=pos)
nx.draw_networkx_labels(graph, pos=pos,labels=labels, font_size=8)

plt.axis('off')
plt.show()

其输出: enter image description here