无法在streamlit中使用px.timeline - 在google collab中工作

问题描述 投票:0回答:1

我曾经使用情节时间线图成功部署了一个应用程序,但几个月后我总是遇到错误

TypeError:timedelta 类型的对象不可 JSON 序列化

我在 IDE 中使用了下面相同的代码,它可以工作,所以我对这个问题有点困惑,我更新到了streamlit-1.27.2,问题仍然存在

import plotly.express as px
import pandas as pd

df = pd.DataFrame([
    dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28'),
    dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15'),
    dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30')
])

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
fig.update_yaxes(autorange="reversed") # otherwise tasks are listed from the bottom up
st.plotly_chart(fig)
python plotly streamlit
1个回答
0
投票

我可以用

TypeError
plotly<=5.14.0
重现
pandas>=2.0.0

streamlit
无关。这实际上是plotly中的一个bug,并在
5.14.1
中修复。

作为解决方案,您可以将

pandas
降级为
<2.0.0
或将情节升级为
>=5.14.1

#1st solution
pip install pandas==1.5.3

#2nd solution
pip install plotly==5.14.1 # or pip install -U plotly

输出(

streamlit run app.py
):

© www.soinside.com 2019 - 2024. All rights reserved.