6

Estoy implementando una nube de etiquetas en un dispositivo móvil. Los detalles del modelo de datos, etc., no son particularmente importantes aquí. Mi pregunta es sobre el escalado de etiquetas:Al escalar etiquetas en una nube de etiquetas

¿Cuál es la 'mejor' expresión para asignar la frecuencia de las etiquetas al tamaño de fuente?

He mirado this post discutir lineal y una escala logarítmica y this answer de Adrian Kuhn esbozo de un enfoque polinómica para la inspiración. Sin embargo, parezco recordar un mensaje en algún lugar de Internet con mucha más exploración sobre este tema.

También encontré algunos "best practices" en un blog, aunque no estoy seguro de la importancia de las mejores prácticas. Estos no hacen ningún comentario sobre la escala de frecuencia.

¿Qué alternativas tengo para escalar las etiquetas, y cuál es el método preferido/estándar? También estoy considerando tamaño de fuente mínimo, número máximo de etiquetas, colores, etc.

Editar: Según el debate en this question, estoy interesado en el tagcloud "estándar", con variaciones de tamaño de fuente.

+0

Er, echa un vistazo la columna de la derecha de este sitio: ordene por número de instancias descendentes, con el número a la derecha. Funciona para mi. – Benjol

Respuesta

3

trabajé en un proyecto pequeño nube de etiquetas año pasado, en el que he usado algo a lo largo de las líneas de

β = (int) (((maxθ - minθ) x ω) + minθ + 0.5)
donde ω es una ponderación previamente calculada de acuerdo con alguna métrica (en su caso, frecuencia de fuente), minθ y maxθ son límites inferiores y superiores, y β es el valor final. Esto se puede aplicar a cualquier característica visual (tamaño de fuente, color, peso si es compatible, etc.).

Encontré que el escalado lineal y logarítmico tendía a depender de la distribución del conjunto de datos. En los conjuntos de datos con valores atípicos destacados, encontré que tanh fue útil para "suavizar" los valores resultantes.

+0

Esta es la escala lineal con la que finalmente fui. Gran idea re: tanh, voy a ver eso más allá. – jamesh

2

Hay una discusión excelente en this pdf, que trata de escalar, agrupar y truncar en las etiquetas para mostrar.

0

Una solución que encontré funciona muy bien es el siguiente

font_size = (max_font_size - min_font_size) * (Math.sin(1.5*(X)) + minsize

donde X es el valor normalizado que desee asignar a tamaño de la fuente

X = (this_value-min_value)/(max_value-min_value)

esto incrementa diferencia de tamaño para el 3 cuartiles inferiores del rango, como para minimizar el efecto de valores atípicos altos

Cuestiones relacionadas