多个绘图子图的单个滑块

Posted

技术标签:

【中文标题】多个绘图子图的单个滑块【英文标题】:Single slider for multiple plotly subplots 【发布时间】:2020-09-16 22:37:07 【问题描述】:
import pandas as pd
import plotly.graph_objs as go
from plotly.subplots import make_subplots

df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")

df.columns = [col.replace("AAPL.", "") for col in df.columns]

fig = make_subplots(1, 2)

fig.add_trace(
    go.Scatter(x=list(df.Date), y=list(df.High)), row=1, col=1)

fig.add_trace(
    go.Scatter(x=list(df.Date), y=list(df.Low)), row=1, col=2)


fig.update_layout(
    xaxis=dict(
    rangeselector=dict(
        buttons=list([
            dict(count=1,
                 label="1m",
                 step="month",
                 stepmode="backward"),
            dict(count=6,
                 label="6m",
                 step="month",
                 stepmode="backward"),
            dict(count=1,
                 label="YTD",
                 step="year",
                 stepmode="todate"),
            dict(count=1,
                 label="1y",
                 step="year",
                 stepmode="backward"),
            dict(step="all")
        ])
    ),
    rangeslider=dict(
        visible=True
    ),
    type="date"
)
)


import plotly.offline as pyo
pyo.plot(fig)

我想为这两个图创建一个通用滑块。目前有两个图表,但滑块仅适用于其中一个。是否可以使当前滑块对子图中的所有多个图形都通用?

【问题讨论】:

由于 4.0 版 plotly 仅离线,因此您可以避免 import plotly.offline 不清楚你想要达到什么目标。您介意详细说明/提供示例吗? 目前上面的图表生成了两个图表,但滑块仅适用于其中一个图表。我想要两个图表的通用滑块。 当我在 jupyter 中绘制它时,滑块适用于两个图。另外,仅供参考,for i in range(3): 循环上的缩进不正确。它需要一直缩进到steps.append(step) 是的......它有帮助..谢谢你 【参考方案1】:

在下面添加一行。

fig.update_xaxes(matches='x')

【讨论】:

对我不起作用。我的 2x1 绘图仍有两个滑块。

以上是关于多个绘图子图的单个滑块的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 R 中自定义绘图范围滑块?

在 matplotlib 中调整单个子图的大小

更改多个绘图中的子图块

Matplotlib 子图的创建

markdown小技巧:mermaid绘图工具介绍

MATLAB - 如何一起缩放子图?