= Ich habe ein Diagramm mit Networkx von Python erstellt
make_graph.py
# -*- encoding:utf-8 -*-
import networkx
import pylab
from matplotlib import font_manager
from itertools import combinations
from random import randint
#Ein Diktat, dessen Schlüssel der Knoten und die Liste der Knoten mit Kanten ist, ist der Wert
vector = {}
persons = [u"Tanaka", u"Suzuki", u"Yamada", u"Kimura", u"Yoshioka"]
edge_labels = {}
for person in persons:
# defaultdict(list)Führen Sie stattdessen einen Knoten aus
vector[person] = []
for man_pair in combinations(persons, 2):
man1, man2 = man_pair
#Preis die Kanten entsprechend
r = randint(1, 10)
if r % 2:
continue
else:
vector[man1].append(man2)
edge_labels[(man1, man2)] = r
graph = networkx.Graph(vector) #Ungerichtete Grafik
# graph = network.DiGraph(vector) #Gerichteter Graph(to_Kann mit ungerichtetem Diagramm in ein ungerichtetes Diagramm konvertiert werden.
pylab.figure(figsize=(3, 4)) #Machen Sie es 3 cm breit und 4 cm lang
pos = networkx.spring_layout(graph) #Plot schön
# pos = networkx.random_layout(graph)Auf jeden Fall können Sie mit hoher Geschwindigkeit zeichnen
#Schriftart ändern (Schriftart_Pfad entsprechend ändern)
font_path = "/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf"
font_prop = font_manager.FontProperties(fname=font_path)
networkx.set_fontproperties(font_prop)
#Optimiere den Look
networkx.draw_networkx_nodes(graph, pos, node_size=100, node_color="w")
networkx.draw_networkx_edges(graph, pos, width=1)
networkx.draw_networkx_edge_labels(graph, pos, edge_labels=edge_labels)
networkx.draw_networkx_labels(graph, pos, font_size=16, font_color="r")
pylab.xticks([])
pylab.yticks([])
pylab.show()
pylab.savefig("graph_networkx.png ")
Hier kann Japanisch nur angezeigt werden, wenn die Version von networkx 1.5 oder höher ist. Wahrscheinlich
ValueError: matplotlib display text must have all code points < 128 or use Unicode strings
Ich denke, Sie werden den Fehler bekommen. Bitte wenden Sie den Patch hier auf networkx / draw / nx_pylab.py an, um Japanisch anzuzeigen.
So was
*** Referenz http://d.hatena.ne.jp/nishiohirokazu/20111121/1321849806 http://antibayesian.hateblo.jp/entry/20110828/1314491180
Recommended Posts