【发布时间】:2020-12-11 01:29:09
【问题描述】:
目标和内容
使用 python plotly.express,我有一个滑块,可以让我“滑动”通过我的数据的不同日期。因此,我可以为具有相同日期的数据创建一个图表,然后滑动到另一个日期,并创建另一个包含与滑块日期对应的新数据的图表。 如果看不懂请看下图(取自网络,但有一个滑块,可以滑过不同的年份):
所以我的目标是有一个滑块,在图表上显示与当前滑块日期相对应的数据。
问题
我的问题是,当我使用滑块时,它确实显示了正确的数据点,但 x 轴和 y 轴没有改变范围。简而言之,它在滑动时不会正确自动缩放范围。
作为我的 x 轴,我有分类变量(名称),y 轴是价格。因此,当我滑到另一个日期时,我的分数确实发生了变化,但类别仍保留为初始类别。它对 y 轴做同样的事情。
例如,如果我滑动到日期 X,我的 x 轴范围为 A、B 和 C,y 轴在 1-3$ 之间。 但是,如果我滑动到日期 Y,数据将正确更改,但范围不会缩放到新数据。因此,对于日期 Y,我将看不到任何点,因为该类别将保留为初始的 A、B、C,而不是在 x 轴上显示 C、E、F。此外,对于 y 轴,它仍将仅显示从 1 到 3$ 的范围,而不是缩放到新的范围 3-130。
我尝试了什么
我似乎和这个人有同样的问题,但没有答案。我也尝试了她的尝试:https://community.plotly.com/t/auto-scale-plotly-express/33364 我也想试试这个,但我不知道把它放在我的代码正确位置:https://community.plotly.com/t/solved-how-to-progamatically-autoscale-plot/3278
我的代码
这是我现在的代码:
data.columns = ['price', 'category', 'date']
data = data.sort_values(by=['date', 'price'])
fig = px.scatter(data, x = "category", y = "price", animation_frame="date")
fig.update_layout(
yaxis_title="Price (€)",
)
fig['layout']['updatemenus'][0]['pad']['t'] = 180
fig['layout']['sliders'][0]['pad']['t'] = 200
fig.write_html("/home/**/Desktop/1.html", auto_play=True)
我希望我已经足够清楚了。如果您需要任何额外信息,请告诉我。欢迎任何想法或提示:)
【问题讨论】:
标签: python python-3.x slider plotly