Free facet dimensions get the globally resolved breaks, so most panels show one tick
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- rust
- Bereich
- data-visualization
Rechercherichtung
Beginne mit der Reproduktion der Facets und untersuche, wie ggsql Skalen und Breaks für freie Dimensionen auflöst. Lies die Behandlung von resolve.scale und axis.values im Vega-Lite-Writer und vergleiche sie anschließend mit hephaestus' scales::free_position_scale, free_binned_scale und Scale::expand_range. Als abgeschlossen gilt die Aufgabe, wenn core Domains und Breaks pro Panel bereitstellt, sodass Writer keine globalen Breaks mehr anwenden oder freie Ausdehnungen selbst berechnen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
ggsql resolves exactly one scale — and one break set — per aesthetic, including for a facet dimension declared free. The Vega-Lite writer therefore pins the global break set as axis.values even where it has delegated the domain to Vega, so each free panel shows only whichever global breaks happen to fall inside it — frequently one, or none.
While this issue is about the breaks specifically, it also points to a deficiency in our ggsql <-> writer contract. Specifically for faceted plots with free scales we are currently letting the writer calculate range, breaks etc for the free scales. This really belongs in ggsql which should resolve the scale to an array somehow (VegaLite might not be able to consume that but Hephaestus can)
Reproduction
VISUALISE Date AS x, Temp AS y FROM ggsql:airquality
DRAW line
FACET Month SETTING free => 'x'
resolve: {'scale': {'x': 'independent'}} # domain correctly delegated to Vega
scale: {'zero': False} # no domain, as intended
values: ['1973-04-23', '1973-05-21', '1973-06-18', '1973-07-16', '1973-08-13', '1973-09-10']
Those six breaks span the whole year, but each panel covers one month — so a panel gets at most one of them.
Why it belongs in core
Both writers currently work around the missing per-panel resolution, in different places and with different results:
- Vega-Lite delegates the domain to Vega (
resolve.scale: independent) but still pins global break values on top of it. - hephaestus computes the per-panel extent itself in
scales::free_position_scale/free_binned_scale, applying ggsql's ownScale::expand_rangefactors — this is the one remaining piece of writer-side domain computation, and it exists solely because core resolves nothing per panel.
Resolving per-panel domains and breaks for a free facet dimension in core fixes the Vega-Lite tick problem and removes the hephaestus writer's architectural exception in one go.
- Vorherrschende Sprache
- Rust
- Sterne
- 566
- Forks
- 31
- Ø Merge
- 1 T. 21 Std.
- Gemergte PRs (30 T.)
- 9
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus posit-dev/ggsql
-
Missing `linewidth` and `linetype` aesthetics on histogram and bar layersEvtl. vergeben @teunbrand hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 61/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Rename CLAUDE.md to AGENTS.mdEvtl. vergeben @teunbrand hat das vor 4 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
posit-dev/ggsql#565 · 2 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Update the positron dep for the extension to 0.2.9Evtl. vergeben @thomasp85 hat das vor 29 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
writer
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in posit-dev/ggsql
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
status:untriaged
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
midnightntwrk/midnight-zk#592 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
QuartoHub: have the Document name before the filename in the browser tabEvtl. vergeben @cscheid hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
quarto-dev/q2#930 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
muse P3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
HerringtonDarkholme/hd-lang#923 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag