Should LinearColormap.to_step(n=1) create a one-step colormap?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 58/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- data-visualization
Línea de trabajo
Comienza en branca/colormap.py alrededor de LinearColormap.to_step, donde el cálculo n - 1.0 falla para n=1, y reproduce el fallo del issue. Determina el comportamiento previsto para un único paso a partir de la API existente y de las pruebas circundantes; se considerará terminado cuando el comportamiento elegido esté implementado, claramente especificado y cubierto por una prueba de regresión.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
LinearColormap(...).to_step(n=1) raises a ZeroDivisionError.
In map/choropleth workflows, after filtering or classification, there may be only one bucket/class to display, and a one-step colormap seems semantically reasonable.
Currently, we get:
❯ uv run --with branca python
Python 3.12.3 (main, Mar 23 2026, 19:04:32) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import branca
>>> from branca.colormap import LinearColormap
>>> print(branca.__version__)
0.8.2
>>>
>>> cm = LinearColormap(["red", "blue"], vmin=0, vmax=1)
>>> cm.to_step(n=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File ".../branca/colormap.py", line 450, in to_step
index[i] * (1.0 - i / (n - 1.0)) + index[i + 1] * i / (n - 1.0),
~~^~~~~~~~~~~
ZeroDivisionError: float division by zero
The API says n is the expected number of colors in the output StepColormap. When no index/data is supplied it constructs a regular grid from n; later, it computes colors using n - 1.0, which fails at n=1.
Possibilities:
- Could
to_step(n=1)to return aStepColormapwith one color/bin? - Or should
n <= 1be explicitly rejected with a clearValueError? - Or a mention in the docs stating that callers need to special-case single-class data?
- Lenguaje dominante
- Python
- Estrellas
- 134
- Forks
- 69
- Merge medio
- 1 h 10 min
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 python-visualization/branca
-
Accessibility issue - possible to enable adding HTML attributes to rendered iframe elements? Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
python-visualization/branca#213 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
python-visualization/branca#195 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
python-visualization/branca#190 · 6 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
python-visualization/branca#182 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
python-visualization/branca#174 · 9 comentarios ·
Todos los issues de python-visualization/branca
Issues similares
-
essnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
[Feature] 奇物选择添加优先级 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
syfoud/Simulated_Scepter#174 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Giskard-AI/giskard-oss#2840 · 1 comentario ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Abiertoarea: repo bug perceived difficulty: 2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yeti-platform/yeti#1380 ·