plotly / plotly/plotly.py

Polars timezone not respected in graph_objects.scatter

Offen
#5,226 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug P2
Vorherrschende Sprache
Python
Sterne
18.8k
Forks
2.8k
Ø Merge
16 Std. 26 Min.
Gemergte PRs (30 T.)
21

Beschreibung

latest version of plotly // python 3.12

from datetime import datetime, timedelta
from zoneinfo import ZoneInfo

import pandas as pd
import polars as pl

daterange = [datetime(2023, 1, 1, tzinfo=ZoneInfo("Australia/Brisbane")) + timedelta(hours=i) for i in range(48)]

df_1 = pl.DataFrame(
    {
        "timestamp": daterange,
        "line1": [0.1] * 24 + [0.2] * 24,
    }
)
df_2 = pl.DataFrame(
    {
        "timestamp": daterange,
        "line2": [0.0] * 24 + [0.4] * 24,
    }
)
fig = px.line(df_1, x="timestamp", y="line1")

fig.add_trace(
    go.Scatter(
        x=df_2["timestamp"],
        y=df_2["line2"],
        name="line2",
    )
)
fig.show()

"line1" (using px.line )renders correctly with local time on the X-axis. But "line2" (using go.Scatter) gets converted to UTC.

This goes away if df_2 uses pandas or I pass in df_2['timestamp'].to_list() instead.

Probably related to https://github.com/plotly/plotly.py/issues/5166 - is this just because polars isn't supported, but since we've not got type hints in plotly my IDE wasn't complaining?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der bereitgestellten Python-Reproduktion und vergleiche px.line mit go.Scatter, wenn x eine Polars timestamp Series statt einer Liste oder pandas-Daten ist. Verfolge den von go.Scatter verwendeten Konvertierungspfad und überprüfe, wie Zeitzoneninformationen behandelt werden. Als abgeschlossen gilt die Aufgabe, wenn die Polars Series die lokale Zeitzone konsistent beibehält und die Reproduktion beide Datenreihen mit übereinstimmenden Zeitwerten rendert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
pandas, python
Bereich
data-visualization
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.