Should LinearColormap.to_step(n=1) create a one-step colormap?
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 58/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- python
- Domínio
- data-visualization
Direção de pesquisa
Comece em branca/colormap.py, nas proximidades de LinearColormap.to_step, onde o cálculo n - 1.0 falha para n=1, e reproduza a falha descrita na issue. Determine o comportamento pretendido para uma única etapa com base na API existente e nos testes ao redor; a tarefa estará concluída quando o comportamento escolhido estiver implementado, claramente especificado e coberto por um teste de regressão.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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?
- Linguagem predominante
- Python
- Estrelas
- 134
- Forks
- 69
- Merge médio
- 23min
- PRs com merge (30d)
- 2
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de python-visualization/branca
-
Accessibility issue - possible to enable adding HTML attributes to rendered iframe elements?Talvez já em andamento @Htet-Kaung-San assumiu há 49 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
python-visualization/branca#213 · 1 comentário ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 42/100
python-visualization/branca#195 ·
-
Colors given as tuple of ints are not working anymore for LinearColormap and StepColormap since v0.8.0Talvez já em andamento @Conengmo assumiu há 575 dias. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 45/100
python-visualization/branca#190 · 6 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
python-visualization/branca#182 ·
-
test_color_brewer_extendability is very very slowTalvez já em andamento @Conengmo assumiu há 574 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 30/100
python-visualization/branca#174 · 9 comentários ·
Todas as issues de python-visualization/branca
Issues semelhantes
-
Claiming namespace `jft63`Abertanamespace operations
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
EclipseFdn/open-vsx.org#14043 ·
Mantenedores costumam responder em até 1 dia
-
netbox status: needs triage type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
netbox-community/netbox#23376 ·
Mantenedores costumam responder em até 1 dia
-
feedback simulation workshop
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
githubnext/gh-aw-workshop#4455 ·
Mantenedores costumam responder em até 1 dia
-
Triage 🩺
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
[BUG] Container scenario crashes without expected_recovery_time, kube DNS example uses retry_waitAbertaneeds-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
krkn-chaos/krkn#1627 · 1 comentário ·
Mantenedores costumam responder em até 1 dia