65 votes

Graphique Plotly ne s'affiche pas dans le notebook Jupyter

J'ai essayé de résoudre ce problème pendant des heures. J'ai suivi les étapes sur le site de Plotly et le graphique ne s'affiche toujours pas dans le notebook.

Voici mon code pour le graphique :

colorway = ['#f3cec9', '#e7a4b6', '#cd7eaf', '#a262a9', '#6f4d96', '#3d3b72', '#182844']

data = [
    go.Scatter(
        x = immigration.columns,
        y = immigration.loc[state],
                   name=state) for state in immigration.index]

layout = go.Layout(
    title='Immigration',
    yaxis=dict(title='Immigration %'),
    xaxis=dict(title='Années'),
    colorway=colorway,
    font=dict(family='Courier New, monospace', size=18, color='#7f7f7f')
)

fig = go.Figure(data=data, layout=layout)
iplot(fig)

Et voici tout ce que j'ai importé dans mon notebook :

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot

init_notebook_mode(connected=True)

0 votes

Vous ne pouvez pas créer plusieurs tracés de cette manière, la boucle n'a pas fonctionné dans ce cas. Si vous n'avez pas beaucoup d'états, essayez de créer chaque tracé pour chaque état. Comme indiqué ici. Et changez chaque y en nom de l'état. Ensuite, créez une liste de tracés et nommez-la data comme dans l'exemple.

0 votes

@Oysiyl merci, mais cela ne répond en fait pas à ma question. Le graphique s'affiche, mais dans un onglet séparé. Ce que j'aimerais faire, c'est pouvoir le voir dans mon cahier et non dans un onglet séparé.

69voto

Oysiyl Points 1156

Vous devez modifier l'appel de init_notebook_mode, si vous voulez travailler en mode hors ligne.

Tel que:

# Importer les bibliothèques nécessaires
import plotly.offline as pyo
import plotly.graph_objs as go
# Définir le mode notebook pour travailler hors ligne
pyo.init_notebook_mode()
# Créer des traces
trace0 = go.Scatter(
    x=[1, 2, 3, 4],
    y=[10, 15, 13, 17]
)
trace1 = go.Scatter(
    x=[1, 2, 3, 4],
    y=[16, 5, 11, 9]
)
# Remplir les données avec nos traces
data = [trace0, trace1]
# Afficher le graphique et enregistrer sous basic-line.html
pyo.iplot(data, filename = 'basic-line')

La sortie doit s'afficher dans votre notebook Jupyter:

Mon exemple

33voto

Hammer. Wang Points 446

Si vous voulez utiliser Jupyter lab, vous devrez installer l'extension Jupyterlab plotly : https://github.com/jupyterlab/jupyter-renderers/tree/master/packages/plotly-extension.

Mise à jour 2020-01-07

Voir le nouveau lien : https://www.npmjs.com/package/@jupyterlab/plotly-extension

Mise à jour 2020-07-07

https://plotly.com/python/getting-started/#jupyterlab-support-python-35

Solution simple : jupyter labextension install jupyterlab-plotly

Redémarrez Jupyter Lab après avoir installé l'extension.

1 votes

Le lien est mort.

1 votes

Le nouveau lien est obsolète

1 votes

La solution simple fonctionne à merveille. Merci!

25voto

jeffhale Points 387

Pour utiliser une version de plotly inférieure à 5.0 dans Jupyter Lab, assurez-vous d'avoir ipywidgets et plotly installés, puis exécutez la commande suivante :

jupyter labextension install jupyterlab-plotly

OPTIONNEL : Extension des widgets Jupyter :

jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget

Docs source

Et voici le guide de dépannage pour plotly avec Jupyter Lab.

À partir de la version 5.0 de Plotly, je peux créer un nouvel environnement conda avec Python 3.9 et ensuite pip install plotly jupyterlab, et exécuter Jupyter Lab et afficher des graphiques sans installer d'autre paquet ou extension.

1 votes

Vous pouvez supprimer la partie de la version pour obtenir la dernière version en exécutant jupyter labextension install jupyterlab-plotly

0 votes

Installer l'optionnel (ayant le 1er) a planté la visualisation, j'ai dû installer le premier après avoir désinstallé les deux.

1 votes

Cela semble incorrect "À partir de la version 5.0, vous n'avez plus besoin d'installer d'extensions.". Pas un expert, mais j'ai installé la version 5.1 et j'ai rencontré le problème jusqu'à ce que j'installe l'extension et redémarre jupyter.

5voto

Goncalo Peres Points 1695

En supposant que vous utilisez JupyterLab, conformément à Plotly Troubleshooting

Pour utiliser plotly dans JupyterLab, vous devez avoir les extensions installées comme détaillé dans le guide de démarrage. Il y a deux extensions: jupyterlab-plotly pour afficher les figures avec fig.show() et plotlywidget pour le FigureWidget.

En supposant que vous avez installé correctement toutes les bibliothèques (assurez-vous d'avoir ipywidgets et nodejs installés) et en supposant que vous utilisez conda, accédez à conda prompt pour l'environnement dans lequel vous travaillez (l'environnement "Serveur").

Listez les extensions des labos avec

jupyter labextension list

Dans mon cas, j'ai obtenu

JupyterLab v2.2.9
Aucune extension installée

Ensuite, je devrai installer les extensions jupyterlab-plotly (la bibliothèque nodejs sera désormais requise)

jupyter labextension install jupyterlab-plotly@4.14.3

et plotlywidget [optionnel]

jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget@4.14.1

Maintenant vous pourrez visualiser vos graphiques.


Note

Si vous utilisez JupyterLab avec plusieurs environnements python, les extensions doivent être installées dans l'environnement "serveur", et la bibliothèque python plotly doit être installée dans chaque environnement "de traitement" que vous avez l'intention d'utiliser.

5voto

Asu Points 326

Étant nouveau sur Plotly, j'ai rencontré le même problème. J'ai essayé toutes les choses ci-dessus mais j'ai quand même obtenu un graphique vide. Il s'avère que seule l'installation des extensions jupyterlab est suffisante, mais vous devez arrêter et redémarrer le jupyterlab lui-même. Redémarrer le noyau n'a pas aidé.

0 votes

Cela a fonctionné pour moi (l'installation de l'extension + le redémarrage du noyau échoue + l'arrêt et le redémarrage de Jupyter). Merci. Il semble que ce commentaire sur l'autre réponse puisse être incorrect : "À partir de la version 5.0, vous n'avez plus besoin d'installer d'extensions"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X