Pergunta

Quais são uma boa lógica de nuvem de tags que você criou? como fontsize = fator * porcentagem de ocupação ....

Foi útil?

Solução

Você precisará definir um tamanho mínimo, então talvez fontsize = minsize + factor * percentage.

Você pode limitar o intervalo de tamanhos; Talvez pegue o SQRT ou o log da porcentagem, mas isso depende da sua distribuição.

Para outra técnica, dê uma olhada nesta postagem do blog do PoeticCode em Algoritmos de nuvens de tags:

Em seguida, na interpolação linear, como definimos os limites MIN e Max para o tamanho da fonte/intensidade da cor? Percebo que a Amazon.com, por exemplo, está variando seus tamanhos de fonte entre 80% e 280%. Portanto, a tag mais baixa da nuvem obteria um tamanho de fonte de 80% e a etiqueta mais alta 280%. Eu decidi ir com a seguinte fórmula

150*(1,0+ (1,5*m-maxm/2)/maxm)

Isso fornece um tamanho de fonte de 75% a 300%, à medida que a métrica muda de um potencial de 0 a maxm.

Outras dicas

Eu verificaria a ocorrência de cada elemento e acompanhava o "máximo" (o elemento com a contagem mais alta, pois essa será sua medida).

Em seguida, calcule a porcentagem de ocorrência para cada elemento, em comparação com o elemento com o máximo (que é 100%). Por exemplo:

foreach ($elements as $element) {
    $percentage = floor(($element['count'] / $maximum) * 100);
}  

Em seguida, crie estilos CSS para valores percentuais de 20/40/60 / 80 /100 e aplique o estilo CSS correto de acordo com a porcentagem.

Ou você poderia, como sugeriu, calcule o tamanho da fonte.

Primeiro, obtenha seu máximo. e min e calcule a propagação. ($ max - $ min). Seu incremento do tamanho de uma fonte seria a "etapa" - que é basicamente ($ max - $ min) / $ spread.

Agora você pode calcular seus sizes de fontes de acordo:

$min_size + ($element['occurrence'] - $smallest_array_value) * $step  

Não se esqueça de arredondar o seu resultado.

Poderia escrever a segunda parte para você marcar a implementação em nuvem min e max e espalhar estou um pouco confuso.

Eu fiz o cálculo da nuvem de tags assim:

$v - incoming value,
$minV - minimal value from dataset,
$maxV - maximal value from dataset,
$minFS - minimum font size,
$maxFS - maximum font size,

function roundFontSize($v, $minV, $maxV, $minFS, $maxFS) {
    return $minFS + floor($v / (($maxV - $minV) / ($maxFS - $minFS)));
}

Isso permite que você arredonda os tamanhos de fonte, dependendo da sua necessidade.

O tamanho da fonte nunca excederá a faixa de tamanho da fonte de $ minfsad $ maxfs.

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