curveHorizontal, curveVertical?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- d3, javascript
- Área
- data-visualization
Línea de trabajo
The issue describes a need for horizontal or vertical curve options in d3.line to represent discrete time-series data while improving rendering performance. Start by reading the d3-shape curve documentation and the implementation and tests for d3.curveStep. Done means a suitable curve option preserves the intended visual impression and performs well with large datasets on desktop and mobile.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In working with discrete-time and discrete-level data, I find that the risers in the data can end up being visually deceptive, especially where there is a single-level change involved. Use of a collection of "dots" appears to be much slower to render than the path used by d3.line, to the point of making scrolling and zooming even on a desktop browser rough, and nearly impossible on a phone.
From a presentation standpoint, the dot is "fine" -- it is just the performance problems, especially as mobile monitoring of the time series is a primary use case.
With d3.curveStep:

With drawing a dot:

At least for me, the visual impression of how many samples are at the median vs. high/low over a segment of time is very different between the two representations.
(Using d3.line has similar challenges with the near-vertical connectors as d3.curveStep has with the risers.)
On a desktop, the dataset-size limit is around 1000-1500 dots before the re-draw times introduce so much lag as to make scroll/zoom frustrating. (There are three other d3.line data sets as well on the graph, but it is the dots that dramatically slow the re-draw time)
- Lenguaje dominante
- JavaScript
- Estrellas
- 2.5k
- Forks
- 307
- Merge medio
- 4 h 16 min
- PR fusionados (30 d)
- 1
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 d3/d3-shape
-
Improve tree-shakingAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
option for arc's curve precisionAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
startPadAngle and endPadAngleAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dynamic smoothing interpolationAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de d3/d3-shape
Issues similares
-
ai bug design good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
neomjs/neo-agent-institution#927 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
gramps-project/gramps-web#1671 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue priority: P2 status: ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
RhinoLink-Tech/data-fabric#502 ·
Los mantenedores suelen responder en 1 día
-
[Server Submission]: PayStageAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
cline/mcp-marketplace#3708 ·
-
beginner-friendly category:finding-titles community enhancement first-timers-only good first issue help wanted low hanging fruit micro-contribution type: task up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Berserk-hub150/skillhawk#264 · 1 comentario ·
Los mantenedores suelen responder en 4 días