当前位置: 首页 > 知识库问答 >
问题:

如何使用Ploly-Dash设置范围滑块和选择器

左丘阳晖
2023-03-14

我试图用Dash重新创建这个生动的示例,但是我无法获得按钮和范围滑块。有人知道我怎么做吗?

这就是我尝试的:

traces =[{
            'x':df.index,
            'y':df.level,
            'type': 'scatter',
            'mode': 'lines',
            'name': 'a_level'
    }]
    graphs.append(dcc.Graph(
        id='a_level',
        figure={
            'data': traces,
            'layout': {
                    'type': 'date',
                    'rangeslider': {'visible':True},
                    'margin': {'b': 0, 'r': 10, 'l': 60, 't': 0}
            }
        }
    )

共有3个答案

终波涛
2023-03-14

我做了这样的事情(使用具有datetimeindex的df):

def get__marks(f):

dates = {}
for z in f.index:
    dates[f.index.get_loc(z)] = {}
    dates[f.index.get_loc(z)] = str(z.month) + "-" + str(z.day)

return j
dcc.RangeSlider(
    id='range-slider',
    updatemode='mouseup',
    min=0,
    max=len(df.index) - 1,
    count=1,
    step=1,
    value=[0, len(df.index) - 1],
    marks=get_marks(df),
)
全弘深
2023-03-14

rangesliderxaxis的一个属性。

我用这样的东西:

app = dash.Dash(__name__, external_stylesheets=['https://codepen.io/chriddyp/pen/bWLwgP.css'])
    app.layout = html.Div([
        dcc.Graph(
            id='bar_plot',
            figure=go.Figure(
                data=area,
                layout=go.Layout(
                    xaxis={
                        'rangeslider': {'visible':True},
                        'rangeselector': {'visible':True, 'buttons':[{'step':'all'}, {'step':'day'}, {'step':'hour'}]}
                    },
                )))
    ])
严琨
2023-03-14

范围滑块是仪表板核心组件,它不是图形的属性(也是仪表板核心组件)。

下面是一个简单的应用布局:

import dash_core_components as dcc

app.layout = html.Div(children=[
    html.H1('My Dash App'),
    html.Div(
        [
            html.Label('From 2007 to 2017', id='time-range-label'),
            dcc.RangeSlider(
                id='year_slider',
                min=1991,
                max=2017,
                value=[2007, 2017]
            ),
        ],
        style={'margin-top': '20'}
    ), 
    html.Hr(),
    dcc.Graph(id='my-graph')
])

现在,您只需定义一个回调,每次RangeSlider的值更改时都会调用该回调。这是导致调用_update_graphInput。您可以有多个输入(例如Dropdown,另一个RangeSlider等)。

输出始终是单个输出。在本例中,它是图形组件的图形属性。

# the value of RangeSlider causes Graph to update
@app.callback(
    output=Output('my-graph', 'figure'),
    inputs=[Input('year_slider', 'value')]
    )
def _update_graph(year_range):
    date_start = '{}-01-01'.format(year_range[0])
    date_end = '{}-12-31'.format(year_range[1])
    # etc...

仪表板核心组件可能导致多个组件更新。例如,范围滑块可能会导致标签发生更改。

# the value of RangeSlider causes Label to update
@app.callback(
    output=Output('time-range-label', 'children'),
    inputs=[Input('year_slider', 'value')]
    )
def _update_time_range_label(year_range):
    return 'From {} to {}'.format(year_range[0], year_range[1])
 类似资料:
  • 我正在尝试定制一个范围滑块根据我的需要我几乎在那里除了它的方向,目前它是水平对齐的,应该是垂直的。 我尝试添加和以及 不走运。 当前代码库如下:Style 标记 是不是我漏了什么?如有任何帮助,我们将不胜感激。谢谢

  • 我有一个960x540窗口,我正在使用OpenGL创建。在这里渲染一个纹理,并使用imgui实现一个滑块,让我在运行时翻译x、y和z位置。 首先,我设置滑块默认值。 稍后,在我的循环中,只要窗口打开,就会逐帧渲染对象的位置,我将ImGui::SliderFloat3和v\u min参数设置为窗口的尺寸。似乎所有3个滑块x、y和z都使用这些值,但是否有方法为每个滑块设置范围?正如你所看到的,我的y轴

  • 我正在使用rn范围滑块包(https://www.npmjs.com/package/rn-range-slider)我目前正在使用onValueChanged道具,如下所示: 问题是,这会为每个步骤设置状态,例如,当从30滑动到80时,会为每个步骤添加设置状态(在我的情况下,步骤=5),因此30、35、40。。。80 我只想在用户从滑块释放手指时设置状态,即最终数字。有一个名为“onTouchE

  • 范围选择器(rangeSelector)是图表中用于选择数据范围的工具,它提供了预配置的时间选择按钮,包括 1天,1周,1个月等,同时也提供时间输入框用于手动指定时间范围。 时间选择按钮 通过 rangeSelector.buttons 可以指定时间选择按钮,默认是 buttons: [{ type: 'month', count: 1, text: '1m' }, {

  • 在本章中,我们将介绍文档中的选择以及在表单字段(如 <input>)中的选择。 JavaScript 可以获取现有选择,选择/取消全部或部分选择,从文档中删除所选部分,将其包装到一个标签(tag)中,等。 你可以在本文最后的“总结”部分中找到使用方法。但是,如果你阅读整篇内容,将会有更多收获。底层的(underlying)Range 和 Selection 对象很容易掌握,因此,你不需要任何诀窍便

  • 本文向大家介绍jQuery UI Library 范围滑块,包括了jQuery UI Library 范围滑块的使用技巧和注意事项,需要的朋友参考一下 示例 范围滑块提供2个可拖动的手柄以选择数值。滑块的初始化必须提供一个range选项集true来创建范围滑块: