我想创建一个图形,其中节点是大正方形,列出了几个属性值对。
[ a1 : v1 ] [ a1 : v1 ]
[ a2 : v2 ]----[ a5 : v1 ]
|
|
[ a3 : v1 ]
[ a4 : v2 ]
我该如何在networkx中做到这一点?
答案 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()