gpt4 book ai didi

python - Plotly:如何将水平滚动条添加到 plotly 表达图形?

转载 作者:行者123 更新时间:2023-12-03 23:34:37 25 4
gpt4 key购买 nike

我开始学习更多关于 plotly 和 pandas 的知识,并有一个多变量时间序列,我希望使用 plotly.express 功能进行绘制和交互。我还希望我的绘图具有水平滚动条,以便初始绘图用于预先指定的初始时间间隔。这是我的示例,涉及三个时间序列以及 10 万个时间点:

import plotly.express as px
import numpy as np
import pandas as pd

np.random.seed(123)
e = np.random.randn(100000,3)
df=pd.DataFrame(e, columns=['a','b','c'])

df['x'] = df.index
df_melt = pd.melt(df, id_vars="x", value_vars=df.columns[:-1])
fig=px.line(df_melt, x="x", y="value",color="variable")
fig.show()

enter image description here

(对于我的最终目的,时间序列会更大——在 90 万多个时间点中可能有 40 到 70 个时间序列。)

这将创建一个图形,我可以使用 plotly.express 功能与之交互,例如缩放、平移、矩形选择等。

有没有一种方法可以增加它,以便初始图仅显示前 500 个时间点,并且滚动条允许我调查随着时间的增加会发生什么?

在空闲时使用 Mac OS 10.15.4 和 Python 3.7。我希望在 IDLE 中而不是在 Jupyter 笔记本环境中创建它。

最佳答案

最简单的方法是将以下内容添加到您的设置中:

fig.update_layout(xaxis=dict(rangeslider=dict(visible=True),
type="linear"))

你会得到:

enter image description here

这将使您能够对原始图形进行子集化和平移:

enter image description here

完整代码:
import plotly.express as px
import numpy as np
import pandas as pd

np.random.seed(123)
e = np.random.randn(100000,3)
df=pd.DataFrame(e, columns=['a','b','c'])

df['x'] = df.index
df_melt = pd.melt(df, id_vars="x", value_vars=df.columns[:-1])
fig=px.line(df_melt, x="x", y="value",color="variable")

# Add range slider
fig.update_layout(xaxis=dict(rangeslider=dict(visible=True),
type="linear")
)

fig.show()

关于python - Plotly:如何将水平滚动条添加到 plotly 表达图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61782622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com