[BUG]: Single-color requests raise ZeroDivisionError in palette helpers
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 82/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- data-visualization
Direção de pesquisa
O erro está nos auxiliares plotly.colors sample_colorscale e n_colors, que dividem pela quantidade solicitada menos um. Comece executando o script de reprodução da issue para confirmar o ZeroDivisionError com quantidade igual a 1. Está concluído quando uma solicitação de uma única cor retorna uma cor no início do intervalo (low / lowcolor), igual à primeira amostra do caso com várias cores, e o caso de zero cores continua retornando uma lista vazia.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
sample_colorscale and n_colors raise ZeroDivisionError when asked for one color. This breaks palettes sized to a dataset's group count when there is exactly one group. Both helpers divide by the requested count minus one.
Expected: one color from the start of the interval (low / lowcolor), consistent with their existing first sample.
Screenshots/Video
The API calls fail before a figure can be created; the output is shown below.
Steps to reproduce
from plotly.colors import n_colors, sample_colorscale
for label, call in [
("sample_colorscale", lambda: sample_colorscale("Viridis", 1)),
("n_colors", lambda: n_colors((0, 0, 0), (1, 1, 1), 1)),
]:
try:
print(label, call())
except ZeroDivisionError as error:
print(label, type(error).__name__, str(error))
Actual:
sample_colorscale ZeroDivisionError division by zero
n_colors ZeroDivisionError float division by zero
Expected:
sample_colorscale ['rgb(68, 1, 84)']
n_colors [(0.0, 0.0, 0.0)]
Notes
Reproduced with Plotly 7.1.0, current main 3f8a650930feadfdb651cd869ffe3e85fd093885, Python 3.12.10, Windows amd64. Zero-color requests already return empty lists.
- Linguagem predominante
- Python
- Estrelas
- 18.8k
- Forks
- 2.9k
- Merge médio
- 3d 7h
- PRs com merge (30d)
- 20
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
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 plotly/plotly.py
-
README Quickstart fails after `pip install plotly` (numpy and pandas missing)Talvez já em andamento @DawnofGenX assumiu há 6 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
plotly/plotly.py#5790 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
[BUG]: Unnecessary `UserWarning` when using `fig.write_image()` with `kaleido.start_sync_server()`Talvez já em andamento @jayzhou2309 assumiu há 9 dias. Abertabug P3 size: 1
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
plotly/plotly.py#5786 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
P3 size: 1 task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
plotly/plotly.py#5769 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Remove `@types/plotly.js` dependencyTalvez já em andamento @Belagum assumiu há 25 dias. AbertaP3 size: 1 task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
bug P1
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
Todas as issues de plotly/plotly.py
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
GAM-team/got-your-back#547 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
UKGovernmentBEIS/inspect_ai#5821 ·
Mantenedores costumam responder em até 1 dia
-
docs help wanted
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 75/100
-
evidence wanted good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
open-coder-ai/agentseam#195 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia