Plotly Weekly & Monthly Range selector buttons not working on time series data
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 18.8k
- Fork
- 2.8k
- Merge medio
- 16h 26m
- PR unite (30g)
- 21
Descrizione
Hi,
I am having last 1 year time series financial data. I removed weekends as no data is present.
I created plotly viz, 2w,1m range selector buttons are not showing correct time range. While YTD,6m,all showing correct data.
2w button showing 2 week forward days but there is no data, want to see last two week and 1m data.
Reproducable Code-
# !pip install investpy
import pandas as pd
import investpy
import plotly.graph_objects as go
import plotly.figure_factory as ff
import plotly.express as px
today = datetime.now() #Today Datetime
today_fut = today.strftime("%Y,%m,%d") #Converting today date to string format "%Y,%m,%d"
today_fut = datetime. strptime(today_fut, '%Y,%m,%d').date() #Converting today's date to "date" format for NSE Tools library
today = today.strftime("%d/%m/%Y") #Converting today date to string format "%d/%m/%Y"
one_year= datetime.today() - timedelta(days=370) #Subrtracting todays date with 370 Days
one_year = one_year.strftime("%d/%m/%Y") #Converting into string format "%d/%m/%Y"
df = investpy.get_index_historical_data(index="Nifty 50",country="India",from_date=str(one_year),to_date= str(today))
print("Investpy NF Dataframe",df.tail())
bnf = investpy.get_index_historical_data(index="Nifty Bank",country="India",from_date=str(one_year),to_date= str(today))
print("Investpy BNF Dataframe",bnf.tail())
fig = go.Figure(data = [ go.Scatter(x = df.index,y = df['Close'],line=dict(color = 'Steelblue',width=2),mode='lines+markers',name = 'NIFTY'),
go.Scatter(x = bnf.index,y = bnf['Close'],line=dict(color = 'yellowgreen',width=2),mode='lines+markers',name = 'BANK NIFTY'),
])
fig.update_layout(
title='NF and BNF',template = 'plotly_dark',xaxis_tickformat = ' %d %B (%a)<br> %Y',
yaxis_title='NF & BNF',yaxis_tickformat= "000",yaxis_side = 'right',xaxis_title='Date',legend = dict(bgcolor = 'rgba(0,0,0,0)'))
layout = go.Layout(showlegend=True)
##https://plotly.com/python/legend/
fig.update_layout(legend=dict(
yanchor="top",
y=0.99,
xanchor="left",
x=0.01 ))
#hide weekends
fig.update_xaxes( rangeslider_visible=True, rangebreaks=[
dict(bounds=["sat", "mon"]) ])
##https://plotly.com/python/legend/
fig.update_layout(legend=dict(
orientation="h",
yanchor="bottom",
y=1.02,
xanchor="right",
x=1
))
config = dict({'scrollZoom': False})
fig.update_layout(
xaxis=dict(rangeselector=dict(buttons=list([
dict(count=14,label="2w",step="day",stepmode="todate"),
dict(count=1,label="1m",step="month",stepmode="backward"),
dict(count=3,label="3m",step="month",stepmode="backward"),
dict(count=6,label="6m",step="month",stepmode="backward"),
dict(count=1,label="YTD",step="year",stepmode="todate"),
dict(step="all") ])),rangeslider=dict(visible=True),type="date"))
fig.update_layout(
xaxis_rangeselector_font_color='white',
xaxis_rangeselector_activecolor='red',
xaxis_rangeselector_bgcolor='green',
)
fig.show()
pio.write_html(fig, file='wrong_range_selecor_for-2w&1m_button.html', auto_open=True)
Pls let me know , if there is any bug in plotly range selector or I am doing something wrong in
xaxis=dict(rangeselector=dict(buttons=list([xaxis=dict(rangeselector=dict(buttons=list([ code.
I tried dict(count=14,label="2w",step="day",stepmode="backward") but still same issue.
Snaps-
When I click on 2w but it show future dates, where no data is present in dataframe.

1m button snap-

Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia eseguendo l’esempio Python riproducibile con i pulsanti xaxis.rangeselector e la configurazione rangebreaks mostrati nell’issue. Confronta i comportamenti di todate e backward per i pulsanti 2w e 1m sull’indice dei giorni di negoziazione; è completato quando gli intervalli selezionati terminano con i dati disponibili più recenti e mostrano il periodo storico previsto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- plotly, python
- Ambito
- data-visualization
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100