带有中文标签的 networkx draw_graphviz

jef*_*ery 3 python networkx neato pygraphviz

我有一个图表,其中节点标签是中文的。我想用 绘制它draw_graphviz(),但是保存图像时,不会显示中文字符。相反,它们显示为白色块。

我只想知道如何设置字体。

nx.draw_graphviz(G, font_size=6, node_size=80, font_family='serif', font_color='b', alpha=0.1)       
plt.savefig("community__large" + str(i) + ".png")  
plt.close()
Run Code Online (Sandbox Code Playgroud)

以上是我现在使用的代码。

Mae*_*ler 5

...所有中文单词不显示,而是用块白色显示。

起初我无法复制您在使用plt.show()时描述的行为,但是在保存图像时,字符显示为白色块。在我的系统(OS X 10.8.2、Python 2.7.3)上,字体 SimHei 似乎解决了这个问题。从matplotlib 邮件列表中,我发现 Microsoft Yahei 字体也可以使用,但我还没有尝试过。

g = nx.Graph()

g.add_edge('??'.decode('utf8'), '??'.decode('utf8'))
nx.draw_graphviz(g, font_family='SimHei', node_size=1000,
    node_color='white')
plt.savefig('plot.png')
Run Code Online (Sandbox Code Playgroud)

这产生了以下图像:

带有中文标签的图表

请注意,我从谷歌翻译中得到了中文字符,所以我希望它没有任何冒犯性。