`px.timeline` with a Daylight Savings Time scenario - missing/extra hour
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 18.8k
- Fork
- 2.8k
- Merge medio
- 16h 26m
- PR unite (30g)
- 21
Descrizione
Problem:
When using px.timeline on a range where a Daylight Savings Time switch occurs & time zones are in the timestamps, I observe an unexpectedly shorter/longer duration of the bar.
Example A - March - missing an hour
import pandas as pd
import plotly.express as px
df = pd.DataFrame(dict(
x_start=[
pd.Timestamp("2024-03-09", tz="US/Pacific"),
pd.Timestamp("2024-03-10", tz="US/Pacific"),
pd.Timestamp("2024-03-11", tz="US/Pacific"),
],
x_end=[
pd.Timestamp("2024-03-10", tz="US/Pacific"),
pd.Timestamp("2024-03-11", tz="US/Pacific"),
pd.Timestamp("2024-03-12", tz="US/Pacific"),
],
y=[1, 1, 1],
))
px.timeline(df, x_start="x_start", x_end="x_end", y="y")
As you can see, for the DST day (March 10, 2024), the end date is unexpectedly 1 hour early, unlike the other days.
Example B - November - extra hour
import pandas as pd
import plotly.express as px
df = pd.DataFrame(dict(
x_start=[
pd.Timestamp("2023-11-05", tz="US/Pacific"),
],
x_end=[
pd.Timestamp("2023-11-06", tz="US/Pacific"),
],
y=[1],
))
px.timeline(df, x_start="x_start", x_end="x_end", y="y")
In this example, 1 hour is unexpectedly added to the end.
Testing environment:
- Google Colab (also experienced on VS Code & html)
- Latest version of plotly (5.22.0).
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 riproducendo gli esempi pandas e px.timeline dall’issue, includendo le transizioni DST di marzo e novembre. Segui il punto di ingresso di px.timeline attraverso la gestione dei timestamp consapevoli del fuso orario e aggiungi una copertura di regressione per entrambi i casi. Il lavoro è completo quando ogni barra copre l’intervallo di calendario locale previsto senza un’ora mancante o aggiuntiva.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- pandas, 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
- 45/100