我目前正在用dash和plotly构建一个财务仪表板。我将以下烛台图表添加到我的仪表板:
candlestick_chart = go.Figure(data=[go.Candlestick(x=financial_data["Date"],
open=financial_data['Open'],
high=financial_data['High'],
low=financial_data['Low'],
close=financial_data['Close'])])
我希望能够突出显示特定的烛台(例如,使用记号笔)
我试图通过add_trace
函数和以下代码实现这一点:
candlestick_chart.add_trace(
go.Scatter(
x=["2020-07-01"],
y=["350"],
mode="markers",
marker=dict(symbol="6")
)
)
但这破坏了图表
为什么会这样?我怎样才能解决这个问题
编辑:添加数据源
我从https://finance.yahoo.com/quote/SPY/history?p=SPY获得了时间段设置为max的数据
我通过以下方式分析了数据:
start = "2000-01-01"
end = "2021-01-01"
# Get a pandas dataframe
datapath = ('D:\\Programmieren\\trading_bot\\etf_data\\SPY.csv')
financial_data = pd.read_csv(datapath,
parse_dates=True,
index_col=0)
financial_data= financial_data.loc[start:end]
# Process data
financial_data = financial_data["2020-06-01":"2021-01-01"]
financial_data.reset_index(inplace=True)
EDIT2:系统和版本
我的软件包有以下版本:
print(pd.__version__) # 1.2.3
print(plotly.__version__) # 4.14.3
我的工作是:
运行您的代码时,出现以下错误:
为了解决这个问题,我只是简单地给了
marker
值一个它指示的值,例如,我做了marker=dict(symbol='triangle-down-open')
,它返回了一个如下图:图表的代码为:
这个可以被看作是一个版本问题,但核心问题是您已经将
y-value
定义为一个带有["350"]
的字符串列表,而不是像中的[350]
这样的数字:不同版本的plotly对这一点的处理方式似乎有所不同。只需删除引号,即可将该值以数字形式绘图解释,从而生成以下结果:
使用示例数据完成代码
相关问题 更多 >
编程相关推荐