破折号中的 Rangeslider Parablem Python

RangeSlider prblem in Dash Python

我正在开发 Dash 应用程序,有一个 RangeSlider 元素允许 select 日期范围。这是代码:

dcc.RangeSlider(
                    id='my-range-slider',
                    marks={timegm(datetime.strptime(years_list[i], '%Y-%m').utctimetuple()): {"label": years_list[i], "style": {"transform": "rotate(45deg)"}}
                           for i in range(len(years_list))},
                    min=min_value,
                    max=max_value,
                    value=[min_value,max_value],
                    step=1,
                )

其中“years_list”是日期字符串列表。 RangeSlider 连接到一个图表,但问题是 years_list 太长,标记如下图所示,而如果列表不太长,则值很好。

有没有办法限制RangeSlider中可见标记的数量?或者解决这个图形问题的方法?

您可以使用 range() 函数的“step”参数调整范围滑块上的标记数。您选择最大数量的标记以保持用户界面看起来干净。

import math
qty_of_years = len(years_list)
maximum_number_of_slider_marks = 20  # You pick max qty for good visuals in user interface
step_required_for_range = math.ceil(qty_of_years/maximum_number_of_slider_marks)

marks={timegm(datetime.strptime(years_list[i], '%Y-%m').utctimetuple()): {"label": years_list[i], "style": {"transform": "rotate(45deg)"}}
                           for i in range(0, qty_of_years, step_required_for_range)},