= J'ai fait un graphique en utilisant networkx de python, alors notez
make_graph.py
# -*- encoding:utf-8 -*-
import networkx
import pylab
from matplotlib import font_manager
from itertools import combinations
from random import randint
#Un dict dont la clé est le nœud et la liste des nœuds qui ont des arêtes est la valeur
vector = {}
persons = [u"Tanaka", u"Suzuki", u"Yamada", u"Kimura", u"Yoshioka"]
edge_labels = {}
for person in persons:
# defaultdict(list)Faites ceci pour créer un nœud à la place
vector[person] = []
for man_pair in combinations(persons, 2):
man1, man2 = man_pair
#Évaluer les bords de manière appropriée
r = randint(1, 10)
if r % 2:
continue
else:
vector[man1].append(man2)
edge_labels[(man1, man2)] = r
graph = networkx.Graph(vector) #Graphique non orienté
# graph = network.DiGraph(vector) #Graphique dirigé(to_Peut être converti en un graphe non orienté avec non orienté)
pylab.figure(figsize=(3, 4)) #Faites-en 3 pouces de large et 4 pouces de long
pos = networkx.spring_layout(graph) #Tracer bien
# pos = networkx.random_layout(graph)Quoi qu'il en soit, vous pouvez tracer à grande vitesse
#Changer la police (police_changer de chemin le cas échéant)
font_path = "/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf"
font_prop = font_manager.FontProperties(fname=font_path)
networkx.set_fontproperties(font_prop)
#Ajustez le 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 ")
Ici, le japonais ne peut être affiché que si la version de networkx est 1.5 ou supérieure. Probablement
ValueError: matplotlib display text must have all code points < 128 or use Unicode strings
Je pense que vous obtiendrez l'erreur. Veuillez appliquer le correctif ici à networkx / drawing / nx_pylab.py pour afficher le japonais.
Comme ça
*** Référence http://d.hatena.ne.jp/nishiohirokazu/20111121/1321849806 http://antibayesian.hateblo.jp/entry/20110828/1314491180
Recommended Posts