Pergunta

Estou implementando uma nuvem de tags em um dispositivo móvel. Os detalhes de dados-modelo etc, não são particularmente importantes aqui. Minha pergunta é sobre a escala de tags:

O que é a 'melhor' expressão para mapear frequência tag para o tamanho da fonte?

Eu olhei este post discutir linear e escala logarítmica e esta resposta de Adrian Kuhn esboço de uma abordagem polinomial para inspiração. No entanto, parece-me lembrar um post algum lugar nas interwebs com muito mais exploração sobre esta questão.

Eu também encontrei alguns " melhor práticas " em um blog, embora tenho certeza da providência das melhores práticas. Estes fazem nenhum comentário sobre a escala de freqüência.

Que alternativas que eu tenho para a tag de escala, e que é o método preferido / padrão? Eu também estou considerando fontsizes mínimos, número máximo de marcas, cores, etc.

Edit: De acordo com a discussão na esta questão , estou interessado na tagcloud "standard", com variações de tamanho de fonte.

Foi útil?

Solução

Eu trabalhei em um projeto pequeno nuvem de tags no ano passado, em que eu usei algo ao longo das linhas de

ß = (int) (((max? - min?) x ?) + min? + 0,5)
onde ? é uma ponderação previamente calculado de acordo com alguns métrica (na sua frequência de fonte caso), e min? max? são limites superior e inferior, e ß é o valor final. Isto pode ser aplicado a qualquer característica visual (tamanho da fonte, cor, peso, se suportado, etc.).

Eu achei que a escala logarítmica linear e tendiam a dependente da distribuição de conjunto de dados. Em conjuntos de dados com valores atípicos proeminentes I encontrados tanh foi útil para 'suavizar' os valores resultantes.

Outras dicas

Há uma excelente discussão em este pdf , que discute o dimensionamento, clustering, e truncando nas etiquetas para mostrar.

A solução que eu encontrei funciona muito bem é a seguinte

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

onde X é o valor normalizado que deseja mapear para o tamanho da fonte

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

este tamanho diferencial aumenta para os inferiores 3 quartis do intervalo, tal como para minimizar o efeito de altas valores aberrantes

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top