Plotly:如何绘制具有共享 x 轴的多条线?

pol*_*ian 10 python plotly plotly-dash

我希望在同一画布内有一个多线图,与相同的 x 轴相连,如图所示

在此输入图像描述

使用子图并不能达到预期的目的。

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

fig = make_subplots(rows=2, shared_xaxes=True,vertical_spacing=0.1)
fig.add_scatter(y=[2, 1, 3], row=1, col=1)
fig.add_scatter(y=[1, 3, 2], row=2, col=1)
fig.show()
Run Code Online (Sandbox Code Playgroud)

我可以知道如何做到这一点吗?如果有人能指出好的阅读材料,我将不胜感激

ves*_*and 14

对于这样的数据集,您可以选择任意数量的列,fig = make_subplots()使用shared_xaxesset to设置一个图形True,然后使用fig.add_trace(go.Scatter(x=df[col].index, y=df[col].values), row=i, col=1)循环添加具有共享 x 轴的系列以获得以下结果:

在此输入图像描述

让我知道这是否是您可以使用但需要进行一些调整的设置。

完整代码:

import plotly.graph_objects as go
import plotly.io as pio
from plotly.subplots import make_subplots
import pandas as pd

# data
pio.templates.default = "plotly_white"
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
df = df.set_index('Date')
df.tail()
cols = df.columns[:-4]
ncols = len(cols)

# subplot setup
fig = make_subplots(rows=ncols, cols=1, shared_xaxes=True)

for i, col in enumerate(cols, start=1):
    fig.add_trace(go.Scatter(x=df[col].index, y=df[col].values), row=i, col=1)
    
fig.show()
Run Code Online (Sandbox Code Playgroud)