向从Matplotlib转换的绘图图形添加跟踪时出现问题

2024-09-28 23:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图根据此网页上的说明添加一个新的散点跟踪: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_子绘图创建带有子地块栅格的地物。”

这是我的完整代码,上面提到的两种方法,注释掉了。在

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

Tags: importdataplotmodetypenpfigtrace
1条回答
网友
1楼 · 发布于 2024-09-28 23:28:54

由于plotly 3.0已切换到将图形数据表示为元组而不是列表,因此您使用的示例代码似乎已被弃用。因为元组是不可变的,所以您收到了所描述的错误。在

参见文档:https://github.com/plotly/plotly.py/blob/master/migration-guide.md#migration-to-version-3

所以,换线

plotly_fig['data'].append( dict(x=x, y=logx, type='scatter', mode='lines') )

收件人:

^{pr2}$

相关问题 更多 >