Pregunta

Tengo una lista de valores numéricos.Puedo normalizar los valores si es necesario.

Necesito transformar esta lista en una lista de colores (en HSL, RGB o cualquier otro modelo de color; siempre puedo realizar la conversión más adelante).

Para cualquier valor dado, el color debe ser el mismo siempre.

Cuanto más diferentes sean dos valores numéricos dados, más contraste deberían tener los valores correspondientes.

Todos los colores utilizados deben contrastar lo más posible entre sí (esta es una limitación suave, una solución aproximada sería suficiente).

Tenga en cuenta que la lista es bastante grande (miles de números), por lo que simplemente comprimir todos los números en un solo canal de color produciría resultados demasiado densos.

¿Fue útil?

Solución

Podría considerar el uso de una curva de relleno de espacio en 3D a través del espacio de color elegido . Apoyaré la CIELAB sugerencia de Mark, ojalá lo hubiera sabido la última vez que tuve que hacerlo. resolver un problema similar.

Otros consejos

Cualquiera que sea el algoritmo que finalmente elija, puede probar el espacio de color CIELAB . Normaliza las diferencias en la percepción del color humano, de modo que un espaciado numérico igual produce diferencias perceptuales iguales.

Ver: Cómo generar automáticamente N " distinct quot; colores?

Sería mejor normalizar sus valores y ejecutarlos a través del código que sugerí (donde hue == su valor), construyendo un mapa / hash. (En su lugar, puede usar una función de estilo hash, que probablemente sea más eficiente).

Puede " aleatorizar " luminosidad (o brillo, dependiendo de su modelo) y saturación usando algunos bits predeterminados de su número, por ejemplo.

¿Por qué no usar tonos de gris? Simplemente calcule los valores min / max y úselos para traducir cada número a un tono diferente de blanco a negro.

Sé que no son colores, pero en mi opinión será más fácil interpretar los resultados. Puedo decir lo que significa cuando algo es más oscuro o más claro, pero ¿quién puede decir que, por ejemplo, el verde es un valor más alto que el naranja?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top