J'essaie de dessiner un graphique networkx en utilisant python 3.6 avec le cahier Jupyter et le package réseau avec anaconda. Mais le graphique ne dessine pas selon la documentation, je reçois juste un message obsolète.
CODE:
import networkx as nx
import csv
import matplotlib as plt
G = nx.read_pajek('Hi-tech.net')
nx.draw(G)
MESSAGE:
MatplotlibDeprecationWarning: pyplot.hold est déconseillé. Le comportement futur sera cohérent avec la valeur par défaut de longue date: les commandes de tracé ajoutent des éléments sans d'abord effacer les axes et/ou la figure.
b = plt.ishold()
Le comportement futur sera cohérent avec la valeur par défaut de longue date: les commandes de tracé ajoutent des éléments sans d'abord effacer les axes et/ou la figure.
plt.hold(b)
warnings.warn ("axes.hold est obsolète, sera supprimé dans 3.0")
Pour éviter cet avertissement, je remplace simplement
nx.draw(G)
par
nx.draw_networkx(G)
Mon Python vaut 3,4, Jupyter '1.0.0' et networkx '1.11'.
Je pourrais faire fonctionner nx.draw (G) en ajoutant la ligne de commande suivante:
% matplotlib inline
J'ai pu me débarrasser du message en allant dans la bibliothèque networkx et en plaçant simplement # devant les lignes qui ont produit l'erreur.
Je déduirais que la fonction .hold () n'est plus nécessaire, ni ne doit être remplacée
Comme une erreur le suggère ... je change nx_pylab.py au 611
# if cb.is_numlike(alpha):
if isinstance(alpha,numbers.Number):
Je viens de commenter le ligne 365 du fichier __init__.py
dans Lib\site-packages\matplotlib\cbook qui lit
@deprecated('3.0', 'isinstance(..., numbers.Number)')