web-dev-qa-db-fra.com

AttributeError: le module 'plotly' n'a pas d'attribut 'plotly'

Je ne comprends pas pourquoi cet extrait de code ne fonctionne pas. Les données sont fictives, je veux juste pouvoir faire une visualisation de séries chronologiques avec complot.

Ce module a déjà fonctionné pour moi dans un noyau Kaggle:

https://www.kaggle.com/aubertsigouin/organizing-macrohistorical-datasets/data

Curieusement, je ne suis pas en mesure de le faire fonctionner à nouveau. Il dit "AttributeError: le module 'plotly' n'a pas d'attribut 'plotly'".

Des conseils?

import plotly
import plotly.graph_objs as go
from plotly import tools
from plotly.offline import init_notebook_mode, plot, iplot
init_notebook_mode()
import pandas as pd
import numpy as np
data = []
array_of_time = pd.to_datetime(np.arange('2013-01-01', '2013-03-01', dtype='datetime64[M]'))

raw_data = [[20,29], [30,33]]

trace_1 = go.Scatter(
    x=array_of_time, 
    y=raw_data[0],
    name = 'data_1',
    line = dict(color = '#aeb9ba'),
    opacity = 0.8
)

trace_2 = go.Scatter(
    x=array_of_time, 
    y=raw_data[1],
    name = 'data_2',
    line = dict(color = '#ffd800'),
    opacity = 0.8
)


data.append(trace_1)
data.append(trace_2)

layout = dict(
    title = 'Exemple de titre',
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(
                    count=1,
                    label='1m',
                    step='month',
                    stepmode='backward'
                ),
                dict(
                    count=6,
                    label='6m',
                    step='month',
                    stepmode='backward'
                ),
                dict(
                    step='all'
                )
            ]
            )
        ),
        rangeslider=dict(),
        type='date'
    )
)

fig = dict(data=data, layout=layout)
iplot(fig, filename = 'graph_1.html')

Cela me donne l'erreur suivante:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-59-81b77c8cb926> in <module>()
     53 
     54 fig = dict(data=data, layout=layout)
---> 55 iplot(fig, filename = 'graph_1.html')

~\Anaconda3\lib\site-packages\plotly\offline\offline.py in iplot(figure_or_data, show_link, link_text, validate, image, filename, image_width, image_height, config)
    342                                      cls=plotly.utils.PlotlyJSONEncoder))
    343 
--> 344     fig = {'data': data, 'layout': layout}
    345     if frames:
    346         fig['frames'] = frames

~\Anaconda3\lib\site-packages\plotly\offline\offline.py in _plot_html(figure_or_data, config, validate, default_width, default_height, global_requirejs)
    206         'plotGlPixelRatio',
    207         'setBackground',
--> 208         'topojsonURL'
    209     )
    210 

AttributeError: module 'plotly' has no attribute 'plotly'
5
asl

Essayez import plotly.plotly.

Je recommande de lui donner un alias comme import plotly.plotly as plt.

Essentiellement dans plotly.plotly, le premier appelle le package plotly et le second après . appelle la fonction de façon compliquée à partir du package.

Edit: s'il vous plaît faites le moi savoir, si cela a fonctionné pour vous ou non.

4
ColdMeteor