networkx图表显示使用matplotlib-缺少标签

时间:2016-02-25 16:55:49

标签: python-2.7 matplotlib networkx

我正在编写一个程序,为特定的输入字符串生成可满足的模型(连接图)。这里的细节并不重要,但主要问题是每个节点都有一个标签,这样的标签可能很长。所以,会发生的是,它不适合图形,导致显示所有节点但部分标签部分显示...此外,显示的图形不提供缩小选项,因此无法捕获整个图表上有一个完整的标签。

有人可以帮助我,也许可以建议一个解决方案吗?

for i in range(0,len(Graphs)):
    graph = Graphs[i]

    custom_labels={}
    node_colours=['y']
    for node in graph.nodes():
        custom_labels[node] = graph.node[node]
        node_colours.append('c')
    #nx.circular_layout(Graphs[i])

    nx.draw(Graphs[i], nx.circular_layout(Graphs[i]), node_size=1500, with_labels=True, labels = custom_labels, node_color=node_colours)
    #show with custom labels
    fig_name = "graph" + str(i) + ".png"
    #plt.savefig(fig_name)
    plt.show()

更新图片添加: enter image description here

2 个答案:

答案 0 :(得分:1)

你可以缩放数字

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_edge('a'*50,'b'*50)
nx.draw(G,with_labels=True)
plt.savefig('before.png')
l,r = plt.xlim()
print(l,r)
plt.xlim(l-2,r+2)
plt.savefig('after.png')

enter image description here

enter image description here

答案 1 :(得分:0)

您可以使用font_size参数缩小字体大小:

nx.draw(Graphs[i], nx.circular_layout(Graphs[i]), ... , font_size=6)