El desafío es simple:
Cree un gráfico circular basado en una serie de valores de entrada.
La entrada será una lista de números positivos, decimales o enteros, y la salida será un gráfico circular donde cada uno de los valores de entrada están representados por colores separados y un valor porcentual fuera de cada una de las áreas.
Reglas:
- Los colores deben ser visualmente distinguibles (los colores exactos son opcionales)
- Habrá al menos dos y un máximo de 10 valores de entrada
- El radio del círculo debe estar en el rango de
[100 300]
píxeles- Los gráficos vectoriales están bien siempre que la salida predeterminada proporcione un radio de
[100, 300]
píxeles
- Los gráficos vectoriales están bien siempre que la salida predeterminada proporcione un radio de
- Los valores porcentuales serán enteros
- No hay una regla estricta que diga dónde se colocará el valor porcentual, pero debe verse fácilmente a qué área pertenece
- La distancia entre el personaje más cercano y el borde exterior del círculo debe estar en el rango
[5, 40]
píxeles - La fuente es opcional
- La trama puede o no tener líneas negras que separan cada región
- Funciones realizadas para crear gráficos circulares, por ejemplo, MATLAB:,
pie
Python:matplotlib.pyplot.pie
y Mathematica:PieChart
no están permitidas - Reglas de redondeo normales (arriba si es
(1.00, 0.5]
, abajo si es(0.5, 0.00)
) - Si el valor porcentual de un segmento es menor que
0.5%
, salida0%
. El corte aún debe incluirse en la trama. - Proporcione parcelas para su examen (o un enlace a un intérprete). Es suficiente mostrar solo el gráfico con 10 valores de entrada (para evitar respuestas muy largas)
Ejemplos
Utilice los valores de ejemplo a continuación. Puede convertir las listas a un formato apropiado utilizando un convertidor de lista numérica , por ejemplo, este 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
fuente
fuente
0.5
a cero si eso es predeterminado. Pero0.50001
debe redondearse a 1.Respuestas:
Mathematica,
186183164 bytesSe podría jugar más al golf. Actualmente genera un
Graphics
objeto. Casos de prueba:fuente
JavaScript (ES6),
311310302298 bytes¡Salvé un byte con la ayuda de @Neil!
Explicación
Escribe algo de SVG en el HTML de la página actual. Construye el gráfico con el punto central
135 x 150
del radio100px
y el texto en un radio135px
desde el centro.fuente
with(Math)c=r=>[sin(d=PI*2*(v+p))*r+135,cos(d)*r+150]
.with(Math)var solution = a=>
etc.with
. Creo que podría haber estado en modo estricto la última vez que lo intenté ...Python + PIL,
365355Resultado para la lista de ejemplo más grande:
fuente
eval(raw_input())
equivalente a Python 2input()
?