Free facet dimensions get the globally resolved breaks, so most panels show one tick
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- data-visualization
Línea de trabajo
Comienza con la reproducción de facets e inspecciona cómo ggsql resuelve las escalas y los breaks para dimensiones libres. Lee el manejo de resolve.scale y axis.values en el writer de Vega-Lite y compáralo con scales::free_position_scale, free_binned_scale y Scale::expand_range de hephaestus. Se considera terminado cuando core proporciona dominios y breaks por panel, de modo que los writers ya no apliquen breaks globales ni calculen por sí mismos las extensiones libres.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 562
- Forks
- 31
- Merge medio
- 2 d 7 h
- PR fusionados (30 d)
- 22
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de posit-dev/ggsql
-
Rename CLAUDE.md to AGENTS.mdAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
posit-dev/ggsql#565 · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Update the positron dep for the extension to 0.2.9Posiblemente ocupada @thomasp85 la tomó hace 13 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
writer
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
plot building
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug plot building
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
Todos los issues de posit-dev/ggsql
Issues similares
-
[Bug]:设置的关于页面,“系统信息”部分排版异常Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
metasequoiaime/msime#7328 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
eclipse-opensovd/classic-diagnostic-adapter#616 ·
Los mantenedores suelen responder en 2 días
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
track: content
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
0xAndersen/witness-log#10 ·
-
follow-up main-defect wave-A
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
carrick-sh/carrick#249 ·
Los mantenedores suelen responder en 1 día