Bibliothek / SDK
reflex-dev/xy avatar
reflex-dev/xy

xy: dokumentierter Einsatz und technische Grenzen

Projektüberblick: Ultraschnelle und anpassbare Python-Diagramme. Passen Sie jede Ebene an. Verwenden Sie Python, um das Diagramm zu steuern, von Markierungen und Achsen bis hin zu Interaktionen und Layout.

1.841 Sterne74 ForksPythonApache-2.0

Auf einen Blick

Was ist das?
Deutsche Einordnung von reflex-dev/xy anhand der offiziellen README-Dokumentation, mit Einstieg, Struktur, Betrieb und offenen Grenzen.
Für wen ist es gedacht?
reflex-dev/xy eignet sich für Anwender, deren Aufgabe zu den in der README von xy genannten Eingaben, Ausgaben und Umgebungen passt. Nicht geeignet ist das Projekt als pauschale Zusage für undokumentierte Kompatibilität oder Leistung.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 13 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

xy: Projektprofil und dokumentierter Einstieg

XY ist eine Python-Diagrammbibliothek für Web, Notebooks und statische Exporte. Diagramme können deklarativ oder nach matplotlib-Konventionen erstellt werden, und laut README kann die Anpassung mit Python, CSS oder Tailwind erfolgen. Das Projekt befindet sich in der Alpha-Phase und wird häufig erweitert. Die README berichtet außerdem über das Rendern des gesamten OpenStreetMap-Datensatzes, der mit 10 Milliarden Punkten angegeben wird, als Demonstration der Skalierbarkeit. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

xy: Datenmodell und zentrale Bausteine

Die README nennt zwei Installationswege: `pip install xy` und `uv add xy`. Ein einfaches Liniendiagramm wird mit `xy.line_chart(xy.line([1,2,3,4,5], [120,180,165,240,310]))` erstellt, und das Diagrammobjekt kann über Methoden wie `to_html`, `to_png` oder `to_svg` nach HTML, PNG oder SVG exportiert oder direkt in einem Notebook angezeigt werden. Die README weist darauf hin, dass jede Sequenz funktioniert und NumPy optional ist. Dieselbe API skaliert auf hundert Millionen Punkte, wenn sie als Dichtefläche gerendert wird, wie in einem späteren Beispiel mit einem Spiraldatensatz gezeigt wird. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

xy: Konkreter Ablauf mit README-Befehlen

Die README beschreibt vier Anpassungsbereiche: Markierungen (Farbe, Größe, Opazität, Symbole, Verläufe, Striche, Kurven, Farbkarten), Hilfslinien (Achsen, Ticks, Gitter, Anmerkungen, Legenden, Farbskalen, Tooltips), Interaktion (Schwenken, Zoomen, Hover, Auswahl, Fadenkreuz, Callbacks, verknüpfte Diagramme) und Layout (Ebenen, Facetten, responsive Dimensionen, Themen). Es zeigt auch ein Codebeispiel, das `class_name` und `class_names` übergibt, um CSS- oder Tailwind-Klassen anzuwenden, z. B. `class_name="rounded-xl bg-white"` und `class_names={"tooltip": "rounded-lg bg-zinc-900 text-white"}`. Die README verlinkt auf einen Styling-Leitfaden und eine Fähigkeitsmatrix für eine detaillierte Aufschlüsselung. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

xy: Konfiguration und sichtbare Schnittstellen

Der Benchmark-Abschnitt in der README beschreibt eine Methodik: Live-interaktive Diagramme von 10.000 bis 100 Millionen Punkten, bei denen jede Bibliothek jede Zeile erhält und über ihren eigenen Eingabepfad in einem echten Browser gesteuert wird. Die Uhr stoppt nur, wenn die Canvas korrekt ist (gepflanzte Sentinel-Punkte werden als leuchtend verifiziert) und stabil ist, also 10 byte-identische Frames. Berichtete Ergebnisse zeigen XY bei 0,071 Sekunden für 10.000 Punkte und 0,081 Sekunden für 100 Millionen, was die README auf den Wechsel zu einer bildschirmbegrenzten Dichtefläche über 200.000 Zeilen zurückführt. Mit `density=False` rendert dieselbe Engine 100 Millionen exakte Marker in 1,34 Sekunden mit 5,26 GiB Speicher. Tabellen vergleichen XY mit Matplotlib und Plotly hinsichtlich Renderzeit und Python-seitigem Speicher, mit Hinweisen, dass Plotly bei 50 Millionen nie fertig wird und Matplotlib den Zoom bei 100 Millionen nicht auflöst. Die README sagt, dies seien einzelne Läufe auf einem Rechner, einem Apple M5 Pro, und verweist auf ein Runbook für Methodik und Rohdaten. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

xy: Betrieb, Grenzen und belegte Ergebnisse

Die mit `xy` gebündelte Reflex-Integration verwandelt jedes XY-Diagramm in eine reguläre Reflex-Komponente ohne JavaScript, Iframe oder separaten Diagrammdienst. Die Installation verwendet das Extra `reflex`: `pip install "xy[reflex]"` oder `uv add "xy[reflex]"`. Der Import-Namespace ist `reflex_xy`. Sie registrieren `reflex_xy.XYPlugin()` in `rxconfig.py` und fügen dann mit `reflex_xy.chart(signups, height="320px")` ein Diagramm an beliebiger Stelle im Komponentenbaum hinzu. Die README zeigt ein Beispiel in einer Karte und weist darauf hin, dass Hover, Schwenken und Zoomen weiterhin funktionieren. Für zustandsgesteuerte Diagramme verlinkt sie auf einen Reflex-Integrationsleitfaden und eine ausführbare Beispiel-App. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

xy: Pflege, Releases und offene Punkte

Die README erklärt, dass die meisten Diagrammstacks jeden Wert als JSON serialisieren und den Browser bitten, jede Markierung zu zeichnen. XY bewahrt exakte Werte in einem `ColumnStore`, berechnet eine Detailstufe in Rust und überträgt typisierte Binärpuffer. Das Architekturdiagramm zeigt einen Fluss von der Python-API zum ColumnStore, dann zur nativen Rust-Berechnung mit direkten, ausgedünnten und Dichtepfaden, dann zu einer kompakten Nutzlast, die eine datenlose JSON-Spezifikation mit typisierten Binärpuffern kombiniert, und schließlich zum Rendern in einem Browser oder Notebook mit WebGL2-Markierungen, Canvas-Achsen und einer DOM-Schnittstelle. Dieses Design ermöglicht es einer dichten Übersicht zu aggregieren, während eine schmale Ansicht exakte Punkte zurückgibt. Bei einem Live-Host fordern Schwenken und Zoomen verfeinerte Nutzlasten an. Kanonische f64-Daten bleiben in Python, sodass Hover und Auswahl weiterhin ursprüngliche Zeilen zurückgeben. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

xy: Lizenz und passende Einsatzform

Die README stellt fest, dass XY in der Alpha-Phase ist und häufig erweitert wird. Der Roadmap-Abschnitt listet als Nächstes geplante Diagrammtypen ohne Datumsangaben auf: kategoriale Verteilungen, Regressionsdiagnostik, Streudiagramm-Matrix und Verbunddiagramme, Kreis/Donut, Candlestick/OHLC mit Finanzüberlagerungen, Wasserfall und Trichter, Treemap/Sunburst/Eiszapfen, Messgerät/Indikator, Slope/Bump/Hantel und 3D/Volumen. Außerdem heißt es, dass das vollständige priorisierte Backlog in einem Diagramm-Roadmap-Dokument enthalten ist, und Benutzer werden eingeladen, ein Issue für nicht aufgeführte Funktionen zu eröffnen. Im README von reflex-dev/xy sind die konkreten Anker xy, der Branch main und die dort genannten Dateien oder Befehle maßgeblich. Für eine Prüfung gehört der dokumentierte Einstieg in xy in eine isolierte Umgebung. Dabei werden Eingabe, erzeugte Ausgabe, Exit-Status und Fehlermeldung festgehalten. Änderungen an einer in reflex-dev/xy genannten Konfiguration werden anschließend erneut mit derselben Version geprüft. Die README-Daten belegen keine allgemeine Leistungs-, Sicherheits- oder Supportzusage.

Redaktionelles Fazit

reflex-dev/xy eignet sich für Anwender, deren Aufgabe zu den in der README von xy genannten Eingaben, Ausgaben und Umgebungen passt. Nicht geeignet ist das Projekt als pauschale Zusage für undokumentierte Kompatibilität oder Leistung. Vor der Entscheidung den dokumentierten Einstieg von xy im Branch main ausführen und Ausgabe, Exit-Status sowie betroffene Konfiguration festhalten.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen