Я пытаюсь добавить новую трассировку рассеяния в соответствии с инструкциями на этой веб-странице: https://plot.ly/matplotlib/modifying-a-matplotlib-figure/
Однако, когда я пытаюсь запустить следующий код:
plotly_fig['data'].append( dict(x=x, y=logx, type='scatter', mode='lines') )
Я получаю следующую ошибку:
plotly_fig['data'].append( dict(x=x, y=logx, type='scatter', mode='lines') )
AttributeError: 'tuple' object has no attribute 'append'
Пока я пробовал:
1.) plotly_fig.update(data=dict(x=x, y=logx, type='scatter', mode='lines'))
который, похоже, ничего не делает.
2.) plotly_fig.add_scatter(name= "test", mode='lines', xaxis='x', yaxis='y',x=x.tolist(), y=sinx.tolist(), line= {'color': 'rgba (31, 119, 180, 1)', 'dash': 'solid', 'width': 1.5})
, который, кажется, добавляет в след, но когда я запускаю:
py.plot(plotly_fig, filename='test.html')
новый след не строится.
3.) new_trace = dict(type='scatter', x=x, y=sinx, mode='lines', line= {'color': 'rgba (31, 119, 180, 1)', 'dash': 'solid', 'width': 1.5})
plotly_fig.append_trace(new_trace, 0, 0)
, который возвращает ошибку: «Чтобы сослаться на трассы по строкам и столбцам, сначала необходимо использовать plotly.tools.make_subplots, чтобы создать фигуру с сеткой подзаговоров».
Вот мой полный код с обоими методами, упомянутыми выше, закомментирован.
import pprint
import matplotlib.pyplot as plt
import plotly.offline as py
import plotly.tools as tls
import plotly.graph_objs as go
x = np.linspace(np.pi, 3*np.pi, 1000)
sinx = np.sin(x)
logx = np.log(x)
fig, ax = plt.subplots(figsize=(5,6))
ax.plot(x, logx)
ax.set_title('Two Curves')
plotly_fig = tls.mpl_to_plotly(fig)`
pp = pprint.PrettyPrinter(indent=4)`
pp.pprint(plotly_fig)`
plotly_fig['data'].append( dict(x=x, y=logx, type='scatter', mode='lines') )
#plotly_fig.update(data=dict(x=x, y=logx, type='scatter', mode='lines'))
#plotly_fig.add_scatter(name= "test", mode='lines', xaxis='x', yaxis='y',x=x.tolist(), y=sinx.tolist(), line= {'color': 'rgba (31, 119, 180, 1)', 'dash': 'solid', 'width': 1.5})
#new_trace = dict(type='scatter', x=x, y=sinx, mode='lines', line= {'color': 'rgba (31, 119, 180, 1)', 'dash': 'solid', 'width': 1.5})
#plotly_fig.append_trace(new_trace, 0, 0)
pp.pprint(plotly_fig)
py.plot(plotly_fig, filename='test.html')