【问题标题】:Plotly.express slider not autoscaling rangesPlotly.express 滑块不自动缩放范围
【发布时间】: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


    【解决方案1】:

    不幸的是,这是 Plotly 动画系统目前的一个硬限制:它无法自动更新范围。请参阅此处的“警告”部分:https://plotly.com/python/animations/#current-animation-limitations-and-caveats

    【讨论】:

    • 谢谢。有没有办法用可能的分类变量初始化 x 轴?
    • 例如,当我的 x 轴放置 A、B、C、E、F 并强制我的点适应初始化的 x 轴?我正在使用 plotly express 并且找不到初始化我的 x 轴的方法......所以无论日期是什么,它都是相同的 x 轴
    • 如果您需要,我在这里更好地提出了这个问题:stackoverflow.com/questions/63533802/…
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2019-03-29
    相关资源
    最近更新 更多