web-dev-qa-db-fra.com

Message obsolète du graphique de tracé networkx

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

16
TPike

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

31
Jesse

Je pourrais faire fonctionner nx.draw (G) en ajoutant la ligne de commande suivante:

% matplotlib inline

3
Nithya Mahadevan

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

3
TPike

Comme une erreur le suggère ... je change nx_pylab.py au 611

#       if cb.is_numlike(alpha):
        if isinstance(alpha,numbers.Number):  
2
cobranet

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)')
0
Joshua christian