[PYTHON] Dessinez un graphique avec networkx

= 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.

résultat

Comme ça

graph_networkx.png

*** Référence http://d.hatena.ne.jp/nishiohirokazu/20111121/1321849806 http://antibayesian.hateblo.jp/entry/20110828/1314491180

Recommended Posts

Dessinez un graphique avec NetworkX
Dessinez un graphique avec networkx
Tracez un graphe avec Julia + PyQtGraph (2)
Dessinez un graphique lâche avec matplotlib
Tracez un graphique avec Julia + PyQtGraph (1)
Dessinez un graphique avec Julia + PyQtGraph (3)
Dessinez un graphique avec des pandas + XlsxWriter
Dessinez un graphique avec l'interface graphique PySimple
Dessinez un graphique avec PyQtGraph Part 1-Drawing
Dessinez une surface plane avec un graphique 3D matplotlib
Dessinez un graphique avec des étiquettes japonaises dans Jupyter
Comment dessiner un graphique à 2 axes avec pyplot
Dessinez un graphique avec les paramètres PyQtGraph Partie 3-PlotWidget
[Python] Dessinez un graphe orienté avec Dash Cytoscape
Dessinez un graphique avec les paramètres PyQtGraph Part 4-PlotItem
Dessinez un graphique avec PyQtGraph Partie 6 - Affichage d'une légende
Dessinez un graphique avec PyQtGraph Partie 5-Augmentez l'axe Y
[Python] Dessinez un diagramme de relation de balises Qiita avec NetworkX
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Dessinez un graphique avec PyQtGraph Partie 2 - Paramètres de tracé détaillés
Dessinez un beau cercle avec numpy
Faisons un graphe avec python! !!
Faire un joli graphique avec plotly
Graphique de sortie networkX avec graphviz (PyGraphviz)
Dessinez facilement une carte avec matplotlib.basemap
Étudier les mathématiques avec Python: dessiner un graphe sympy (scipy) avec matplotlib
[Visualisation] Je veux dessiner un beau graphique avec Plotly
[PyQt] Afficher des graphiques multi-axes avec QtChart
Comment dessiner un graphique avec Matplotlib
Dessinez un cœur en rubis avec PyCall
Dessinez un ensemble de Mandelbrot avec Brainf * ck
Compter la partie concaténée maximale d'un graphe aléatoire avec NetworkX
Créer un voisin le plus proche de connexion avec NetworkX
Dessinez simplement un graphique en spécifiant un fichier
Créer un graphique avec des bordures supprimées avec matplotlib
Comment dessiner un graphique à barres qui résume plusieurs séries avec matplotlib
Dessiner un graphique d'une fonction quadratique en Python
Comment dessiner un graphique 3D avant l'optimisation
Dessinez une "courbe de seins" dans un graphique 3D (1)
Mémo qui a fait un graphique pour animer avec intrigue
Essayez de dessiner une courbe de vie avec python
[Python] Dessinez un Mickey Mouse avec une tortue [Débutant]
J'ai fait un graphique de nombres aléatoires avec Numpy
Dessinez plusieurs photos de plusieurs dossiers sur un graphique
Mémo NetworkX (graphique dirigé)
Format A4 avec python-pptx
Graphique de bande avec matplotlib
Liste des générateurs de graphiques NetworkX
Décorer avec un décorateur
Dessiner un graphique avec python
Dessine un graphique avec Julia ... j'ai essayé une petite analyse
Visualisez les données d'itinéraires ferroviaires sous forme de graphique avec Cytoscape 2
Dessinez de force quelque chose comme un organigramme avec Python, matplotlib
Notez qu'il y avait un problème de version avec networkx
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Dessinez la courbe de Bézier avec Go
Créer une matrice de corrélation partielle et dessiner un graphique indépendant
Graphique des données Excel avec matplotlib (1)
Apprenez librosa avec un tutoriel 1