Plotly:如何在子图上绘制烛台图?

Posted

技术标签:

【中文标题】Plotly:如何在子图上绘制烛台图?【英文标题】:Plotly: How to plot candlestick charts on a subplot? 【发布时间】:2022-01-14 19:32:01 【问题描述】:

我正在尝试绘制一个包含 14 个加密货币数据烛台图的子图。 ( https://www.kaggle.com/c/g-research-crypto-forecasting)

但是,它似乎无法正常显示图形。

这是我的代码:

from plotly import subplots
import plotly.graph_objects as go

fig = subplots.make_subplots(rows=7,cols=2)

for ix,coin_name in enumerate(asset_details["Asset_Name"]):
   coin_df = crypto_df[crypto_df["Asset_ID"]==asset_names_dict[coin_name]].set_index("timestamp")
   coin_df_mini = coin_df.iloc[-100:]
   column = lambda ix: 1 if ix % 2 == 0 else 2
   candlestick = go.Candlestick(x=coin_df_mini.index, open=coin_df_mini['Open'], high=coin_df_mini['High'], low=coin_df_mini['Low'], close=coin_df_mini['Close'])
   fig = fig.add_trace(candlestick, row=((ix//2) + 1), col=column(ix))
   fig.update_layout(xaxis_rangeslider_visible=False)

fig.update_layout(title_text="Candlestick Charts", height=2800)
fig.show()

这就是问题所在:

rangeslider_problem

无论我用或不用范围滑块绘制图形,它总是变形。

【问题讨论】:

有没有办法让滑块保持循环? 【参考方案1】:

您需要隐藏在子图中创建的 x 轴单位上的滑块。我的回答是手动完成所有子图。我现在没有时间处理这个,但是还有一种方法可以在循环过程中更新输出内容。

fig.update_layout(xaxis1=dict(rangeslider=dict(visible=False)),
                  xaxis2=dict(rangeslider=dict(visible=False)),
                  xaxis3=dict(rangeslider=dict(visible=False)),
                  xaxis4=dict(rangeslider=dict(visible=False)),
                  xaxis5=dict(rangeslider=dict(visible=False)),
                  xaxis6=dict(rangeslider=dict(visible=False)),
                  xaxis7=dict(rangeslider=dict(visible=False)),
                  xaxis8=dict(rangeslider=dict(visible=False)),
                  xaxis9=dict(rangeslider=dict(visible=False)),
                  xaxis10=dict(rangeslider=dict(visible=False)),
                  xaxis11=dict(rangeslider=dict(visible=False)),
                  xaxis12=dict(rangeslider=dict(visible=False)),
                  xaxis13=dict(rangeslider=dict(visible=False)),
                  xaxis14=dict(rangeslider=dict(visible=False)),
                 )

【讨论】:

请添加以上代码。如果我的回答对你有帮助,请点击我的回答上的勾号接受。 谢谢!它确实有效。我发现我可以在循环中使用fig.update_xaxes(rangeslider_visible=False) 您不接受我的回复的原因是什么?

以上是关于Plotly:如何在子图上绘制烛台图?的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:将多个图形绘制为子图

Plotly:如何为所有子图设置 xticks?

在烛台图顶部绘制热图

Plotly:如何在 Barpolar 图上添加 Scatterpolar?

当缺少某些值时,如何在烛台图表中添加带有注释的线条?

Plotly Express:处理子图