我有一张图表,其中的节点标签是中文的。我想用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')
这产生了下面的图像:
请注意,我从谷歌翻译中获得了中文字符,所以我希望它不会冒犯任何人。
关于python - 带有中文标签的 networkx draw_graphviz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576704/