python - 带有中文标签的 networkx draw_graphviz

标签 python networkx neato pygraphviz

我有一张图表,其中的节点标签是中文的。我想用draw_graphviz()画出来,但是保存图片的时候,没有汉字显示。它们反而显示为白色 block 。

我只想知道怎么设置字体。

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()

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

最佳答案

...where all Chinese word not display instead with block white.

起初我无法复制您在使用 plt.show() 时描述的行为,但是在保存图像时,字符显示为白色 block 。在我的系统(OS X 10.8.2、Python 2.7.3)上,字体 SimHei 似乎解决了这个问题。来自matplotlib mailing list我发现微软雅黑字体也可以,但我没试过。

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')

这产生了下面的图像:

Graph with Chinese labels

请注意,我从谷歌翻译中获得了中文字符,所以我希望它不会冒犯任何人。

关于python - 带有中文标签的 networkx draw_graphviz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576704/

相关文章:

graphviz - gvpack (graphviz) 不保留各个有向字母的标签

graphviz - 如何增加graphviz中边(样条)和节点之间的空间?

python - 在Django中,如何实现一个事务的可重复读?

python - 根据行中的条件向数据框中添加列

python-2.7 - 如何在骨架化的迷宫图像中找到最短路径?

python - NetworkX - 将多个度量的结果写入 CSV

graphviz - 如何避免graphviz中的重叠节点?

python - 使用 Pandas 和 R 将序列号连接到组中的每一行

python - 使用 matplotlib 的热图

python - 将布局从 networkx 转移到 cytoscape