Melhores práticas com tagclouds ou tagcloud lógica? [fechado
Pergunta
Quais são uma boa lógica de nuvem de tags que você criou? como fontsize = fator * porcentagem de ocupação ....
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.