簡體   English   中英

將跟蹤添加到從Matplotlib轉換的Plotly圖中時出現問題

[英]Problem adding in trace to Plotly figure that was converted from Matplotlib

我試圖根據此網頁上的說明添加新的分散跟蹤: https://plot.ly/matplotlib/modifying-a-matplotlib-figure/ : 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')

您似乎正在使用的示例代碼已過時,因為plotly 3.0已切換為將Figure數據表示為元組而不是列表。 由於元組是不可變的,因此您收到了所描述的錯誤。

參見文檔: 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') )

至:

plotly_fig.add_trace(dict(x=x, y=logx, type='scatter', mode='lines'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM