在 plotly 中制作子图

Posted

技术标签:

【中文标题】在 plotly 中制作子图【英文标题】:Making Subplots in plotly 【发布时间】:2022-01-15 19:44:30 【问题描述】:

任何人都有解决方案如何使直方图成为 ohlc 图的子图,具有相同的 y 轴,但不同的 x 轴?非常感谢。

volume_profile = px.histogram(df, x='Volume', y='Close', nbins=25, orientation='h')
    
ohlc = go.Figure(data=go.Ohlc(x=df['Time'],
                              open=df['Open'],
                              high=df['High'],
                              low=df['Low'],
                              close=df['Close']))
                           
volume_profile.show()
ohlc.show()

【问题讨论】:

【参考方案1】:

要创建子图,请使用专用设置。请参阅details。子图通常在 graph_objects 中启用,因此我们将其更改为 go。另外,由于是直方图,所以设置为关闭。

import plotly.graph_objects as go
import plotly.express as px
from plotly.subplots import make_subplots
import yfinance as yf

df = yf.download("AAPL", start="2021-01-01", end="2021-12-01")

fig = make_subplots(rows=1, cols=2, specs=[['type':'histogram', 'type':'ohlc']])

fig.add_trace(
    go.Histogram(             
              y=df['Close'],
              #y=df[['Close']].values,
              #nbins=25,
              #orientation='h'
              ),
           row=1, col=1
)

fig.add_trace(
      go.Ohlc(x=df.index,
      open=df['Open'],
      high=df['High'],
      low=df['Low'],
      close=df['Close']), row=1, col=2
)

fig.update_layout(
  height=600,
  width=800,
  title_text="Side By Side Subplots",
  xaxis2=dict(rangeslider=dict(visible=False))
   )

fig.show()

【讨论】:

如果我的回答对你有帮助,请考虑接受它作为正确答案并给它1+,谢谢!

以上是关于在 plotly 中制作子图的主要内容,如果未能解决你的问题,请参考以下文章

为啥将两个条形图子图合并为一个会改变轴,我该如何解决?

matplotlib饼图用主图的实际标题替换最后一个饼图子图标题[重复]

Plotly 峰值未出现在子图上

识别 Plotly 中的子图

Plotly:热图颜色图例我的子图

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