3 Stimmen

networkx draw_graphviz mit chinesischer Beschriftung

Ich habe ein Diagramm, in dem die Knotenbeschriftungen auf Chinesisch sind. Ich möchte ihn zeichnen mit draw_graphviz() aber beim Speichern des Bildes werden keine chinesischen Zeichen angezeigt. Sie werden stattdessen als weiße Blöcke angezeigt.

Ich möchte nur wissen, wie ich die Schriftart einstellen kann.

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

Der obige Code ist der, den ich jetzt verwende.

5voto

Maehler Punkte 5831

...wo alle chinesischen Wörter nicht angezeigt werden, sondern mit Blockweiß.

Zunächst konnte ich das von Ihnen beschriebene Verhalten nicht reproduzieren, wenn ich plt.show() aber beim Speichern des Bildes werden die Zeichen als weiße Blöcke angezeigt. Auf meinem System (OS X 10.8.2, Python 2.7.3) scheint die Schriftart SimHei das Problem zu lösen. Von der matplotlib Mailingliste Ich habe herausgefunden, dass die Schriftart Microsoft Yahei auch funktionieren könnte, aber ich habe es nicht ausprobiert.

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

Daraus ergibt sich das folgende Bild:

Graph with Chinese labels

Ich habe die chinesischen Schriftzeichen von Google Translate übernommen und hoffe, dass sie nicht beleidigend sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X