Black Lives Matter. Please consider donating to Black Girls Code today.
Dash HoloViews is now available! Check out the docs.

RangeSelector change Default value

Hey All,
Trying to figure out how to change the default rangeSelector from ‘all’ to some other choice.
couldn’t find an answer.

Thanks

3 Likes

Here’s how: http://codepen.io/etpinard/pen/worOOb?

Thanks for the reply.
I must have explained my problem wrong.
I meant, how do I set the default selector to be ‘24hr’ instead of ‘all’?

2 Likes

@melmell I understand it. You mean something like this to set the default at the beginning (active: true).
I don’t find something in the reference.

    buttons: [{
            step: 'month',
            stepmode: 'backward',
            count: 1,
            label: '1m',
            active: true
        }, {
            step: 'month',
            stepmode: 'backward',
            count: 6,
            label: '6m'
        }, {
            step: 'year',
            stepmode: 'todate',
            count: 1,
            label: 'YTD'
        }, {
            step: 'year',
            stepmode: 'backward',
            count: 1,
            label: '1y'
        }, {
            step: 'all',
            label: 'all'
        }],

excellent. Thank you

Sorry I wrongly express me. The code I postet not works. What I mean is, that I would expect there is e.g. the attribute active to set one of the rangeselector-options to active. But the exactly syntax I don’t know, because I don’t find something in the reference. Maybe there is currently nothing to achieve your goal.
Maybe @etienne nows that:-)

(An workaround could be to let click the specific button after the plot is finished. via element.click() )

2 Likes

I’ve put some code together that wraps up the range selector and allows a default to be set. You can get it at https://github.com/danio/plotly_tools/blob/master/range.py

You’d use it, for example, like (assuming you have created a plotly Figure called figure):
add_range_selector(figure.layout, ranges=[‘14d’, ‘3m’, ‘1y’, ‘ytd’, ‘all’], default=‘3m’)

It might be nice to have something like this in plotly tools.py, but as this depends on dateutil I doubt they would go for it.

1 Like

Kind of hack:- fix date range to be current date to one day back [range: [‘2018-09-15’, ‘2018-09-16’]]
var layout = {
title: ‘Time Series with Rangeslider’,
xaxis: {
autorange: false,
range: [‘2017-02-15’, ‘2017-02-16’],
rangeselector: {buttons: [
{
count: 1,
label: ‘1d’,
step: ‘day’,
stepmode: ‘todate’,
},
{
step: ‘day’,
stepmode: ‘todate’,
count: 7,
label: ‘1w’
},
{
count: 1,
label: ‘1m’,
step: ‘month’,
stepmode: ‘todate’
},
{
count: 3,
label: ‘3m’,
step: ‘month’,
stepmode: ‘todate’
},
{
count: 6,
label: ‘6m’,
step: ‘month’,
stepmode: ‘todate’
},
{
step: ‘all’,
stepmode: ‘todate’
}
]},
rangeslider: {range: [‘2015-03-01’, ‘2018-09-16’]},
type: ‘date’
},
yaxis: {
autorange: true,
range: [86, 138.870004167],
type: ‘linear’
}
};

2 Likes