Этот пример Plotly scatter plot не работает, можете ли вы сказать мне, почему? - PullRequest
0 голосов
/ 01 февраля 2019

Вот код, он из https://plot.ly/python/line-and-scatter/

import plotly.plotly as py
import plotly.graph_objs as go

# Create random data with numpy
import numpy as np

N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5

# Create traces
trace0 = go.Scatter(
    x = random_x,
    y = random_y0,
    mode = 'markers',
    name = 'markers'
)
trace1 = go.Scatter(
    x = random_x,
    y = random_y1,
    mode = 'lines+markers',
    name = 'lines+markers'
)
trace2 = go.Scatter(
    x = random_x,
    y = random_y2,
    mode = 'lines',
    name = 'lines'
)

data = [trace0, trace1, trace2]
py.iplot(data, filename='scatter-mode')

Когда я копирую и вставляю его в блокнот jupyter, я получаю следующую ошибку:

PlotlyError: Потому что вы не предоставили'file_id' в вызове, мы предполагаем, что вы пытаетесь получить цифру из URL.Вы указали URL, '', мы ожидали, что он будет начинаться с 'https://plot.ly'. Запустите справку по этой функции для получения дополнительной информации.

вся ошибка:

Aw, snap! We didn't get a username with your request.

Don't have an account? https://plot.ly/api_signup

Questions? accounts@plot.ly
---------------------------------------------------------------------------
PlotlyError                               Traceback (most recent call last)
<ipython-input-7-70bd62361f83> in <module>()
     27 
     28 data = [trace0, trace1, trace2]
---> 29 py.iplot(data, filename='scatter-mode')

c:\users\appdata\local\programs\python\python37-32\lib\site-packages\plotly\plotly\plotly.py in iplot(figure_or_data, **plot_options)
    162         embed_options['height'] = str(embed_options['height']) + 'px'
    163 
--> 164     return tools.embed(url, **embed_options)
    165 
    166 

c:\users\appdata\local\programs\python\python37-32\lib\site-packages\plotly\tools.py in embed(file_owner_or_url, file_id, width, height)
    394         else:
    395             url = file_owner_or_url
--> 396         return PlotlyDisplay(url, width, height)
    397     else:
    398         if (get_config_defaults()['plotly_domain']

c:\users\appdata\local\programs\python\python37-32\lib\site-packages\plotly\tools.py in __init__(self, url, width, height)
   1438         def __init__(self, url, width, height):
   1439             self.resource = url
-> 1440             self.embed_code = get_embed(url, width=width, height=height)
   1441             super(PlotlyDisplay, self).__init__(data=self.embed_code)
   1442 

c:\users\appdata\local\programs\python\python37-32\lib\site-packages\plotly\tools.py in get_embed(file_owner_or_url, file_id, width, height)
    299                 "'{1}'."
    300                 "\nRun help on this function for more information."
--> 301                 "".format(url, plotly_rest_url))
    302         urlsplit = six.moves.urllib.parse.urlparse(url)
    303         file_owner = urlsplit.path.split('/')[1].split('~')[1]

PlotlyError: Because you didn't supply a 'file_id' in the call, we're assuming you're trying to snag a figure from a url. You supplied the url, '', we expected it to start with 'https://plot.ly'.
Run help on this function for more information.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Другое решение, для людей, использующих pandas, я обнаружил, используя cufflinks интерактивные диаграммы Панд с Plotly.

import cufflinks as cf
cf.go_offline()
0 голосов
/ 01 февраля 2019

Вы должны быть в состоянии заставить его работать благодаря этим небольшим изменениям в вашем коде:

import plotly

plotly.offline.plot(data, filename='basic-scatter')
...