O desafio é simples:
Crie um gráfico de pizza com base em vários valores de entrada.
A entrada será uma lista de números positivos, decimais ou números inteiros, e a saída será um gráfico de pizza em que cada um dos valores de entrada é representado por cores separadas e um valor percentual fora de cada uma das áreas.
Regras:
- As cores devem ser visualmente distinguíveis (as cores exatas são opcionais)
- Haverá pelo menos dois e no máximo 10 valores de entrada
- O raio do círculo deve estar no intervalo de
[100 300]
pixels- Os gráficos vetoriais são bons, desde que a saída padrão dê um raio de
[100, 300]
pixels
- Os gráficos vetoriais são bons, desde que a saída padrão dê um raio de
- Os valores percentuais devem ser inteiros
- Não existe uma regra estrita que diga onde o valor percentual deve ser colocado, mas é preciso ver facilmente a qual área pertence.
- A distância entre o caractere mais próximo e a aresta externa do círculo deve estar no intervalo de
[5, 40]
pixels - A fonte é opcional
- A plotagem pode ou não ter linhas pretas separando cada região
- Funções criadas para criar gráficos de pizza, por exemplo, MATLAB:,
pie
Python:matplotlib.pyplot.pie
e Mathematica:PieChart
não são permitidas - Regras de arredondamento normais (para cima, se for
(1.00, 0.5]
, para baixo, se for(0.5, 0.00)
) - Se o valor percentual de uma fatia for menor que
0.5%
, a saída0%
. A fatia ainda deve ser incluída na plotagem. - Forneça parcelas para exame (ou um link para um intérprete). Basta mostrar apenas o gráfico com 10 valores de entrada (para evitar respostas muito longas)
Exemplos
Por favor, use os valores de exemplo abaixo. Você pode converter as listas em um formato apropriado usando um conversor de lista numérica , por exemplo, este byte de 27 bytes por jimmy23013 .
x = [0.3, 1.2]
x = [3, 6, 2, 10]
x = [0.4387, 0.3816, 0.7655, 0.7952, 0.1869, 0.4898, 0.4456, 0.6463, 0.7094, 0.7547]
code-golf
graphical-output
Stewie Griffin
fonte
fonte
0.5
para zero se for o padrão. Mas0.50001
deve ser arredondado para 1.Respostas:
Mathematica,
186183164 bytesPode ser jogado ainda mais. Atualmente gera um
Graphics
objeto. Casos de teste:fonte
JavaScript (ES6),
311310302298 bytesGuardou um byte com a ajuda de @Neil!
Explicação
Grava algum SVG no HTML da página atual. Constrói o gráfico com o ponto central
135 x 150
do raio100px
e o texto em um raio a135px
partir do centro.fonte
with(Math)c=r=>[sin(d=PI*2*(v+p))*r+135,cos(d)*r+150]
.with(Math)var solution = a=>
etc.with
. Eu acho que poderia ter estado no modo estrito quando tentei pela última vez ...Python + PIL,
365355Resultado para a maior lista de exemplos:
fonte
eval(raw_input())
equivalente ao Python 2input()
?