执行 plotly 模块时遇到错误

Facing an error while executing the plotly module

我是 运行 下面提到的代码,用于创建带有轨迹的烛台图表,但错误反映为 发生异常:AttributeError 'dict' 对象没有属性 'add_trace'

代码如下

import pandas as pd
import plotly.graph_objects as go
import yfinance as yf
import plotly.offline
from plotly.offline import init_notebook_mode, iplot, iplot_mpl

a=input("Enter symbol of the company\n")
tick1=a+'.NS'
HD=yf.Ticker(tick1)
His=HD.history(period='3mo',interval='1d')
His.reset_index(inplace=True)
His['20wma']=His['Close'].rolling(window=140).mean()
fig={"data":[go.Candlestick(x=His['Date'],open=His['Open'],high=His['High'],low=His['Low'],close=His['Close'])]}
fig.add_trace(go.Scatter(x=His['Date'],y=His['20wma'],line=dict(color="e0e0e0")))
plotly.offline.plot(fig)

您可以从字典或图形对象创建图形。

在您的示例中,您将 fig 创建为标准 python 词典。一旦你绘制它,它只会变成一个图形对象。 add_trace 不是字典的有效 python 命令,这就是它失败的原因。

您想创建一个图表对象,您可以将其应用 add_trace。参见 here

对于graph_objects,go.Figure()是正确的写法。 Figure() 是正确的写法。并且颜色设置需要十六进制表示法#.

import pandas as pd
import plotly.graph_objects as go
import yfinance as yf
import plotly.offline
from plotly.offline import init_notebook_mode, iplot, iplot_mpl

a=input("Enter symbol of the company\n")
tick1=a # edit
# rick1=a+'.NS'
HD=yf.Ticker(tick1)
His=HD.history(period='3mo',interval='1d')
His.reset_index(inplace=True)
His['20wma']=His['Close'].rolling(window=20).mean()
fig=go.Figure(data=(go.Candlestick(
    x=His['Date'],
    open=His['Open'],
    high=His['High'],
    low=His['Low'],
    close=His['Close'])))

fig.add_trace(go.Scatter(
    x=His['Date'],
    y=His['20wma'],
    mode='lines',
    line=dict(color="#e0e0e0")))
plotly.offline.plot(fig)