Question

Quelles bonnes logiques de Tag Cloud avez-vous proposées ?comme fontsize = factor * percentOfOccurance ....

Était-ce utile?

La solution

Vous devrez définir une taille minimale, alors peut-être fontsize = minsize + factor * percentage.

Vous souhaiterez peut-être limiter la gamme de tailles ;prenez peut-être le sqrt ou le journal du pourcentage, mais cela dépend de votre distribution.

Pour une autre technique, jetez un œil à ce billet de blog de poeticcode sur Algorithmes de nuages ​​de tags:

Ensuite, dans l'interpolation linéaire, comment définir les limites minimales et maximales pour la taille de la police/l'intensité de la couleur ?Je remarque qu'Amazon.com, par exemple, propose des tailles de police comprises entre 80 % et 280 %.Ainsi, la balise la plus basse du cloud aurait une taille de police de 80 % et la balise la plus haute de 280 %.J'ai décidé d'opter pour la formule suivante

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

Cela donne une taille de police de 75 % à 300 % lorsque la métrique passe d'un potentiel de 0 à maxm.

Autres conseils

Je vérifie l'occurance pour chaque élément et garder une trace du « maximum » (nombre l'élément le plus élevé que ce sera votre mesure).

Suivant calculer le pourcentage d'occurrence pour chaque élément, par rapport à l'élément avec la valeur maximale (soit 100%). Par exemple:

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

Créez ensuite les styles CSS pour 20/40/60/80/100 valeurs de pourcentage et appliquer le style CSS correct en fonction du pourcentage.

Ou vous pourriez comme vous le suggérez calculer la taille de la police.

D'abord obtenir votre maximum. et min et calculer la propagation. ($ Max - min $). Votre incrément taille de la police serait la "étape" - qui est essentiellement ($ max - min $). / Propagation $

Maintenant, vous pouvez calculer vos tailles de police en conséquence:

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

Ne pas oublier de tour de votre résultat.

pourrait écrire la deuxième partie mise en œuvre nuage vous taguer min et max et la propagation Im un peu confus.

Je l'ai fait nuage de tags calcul comme ceci:

$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)));
}

Cela vous permet de la taille des polices rondes en fonction de vos besoins.

Taille de la police ne dépassera jamais gamme de taille de la police de $ minFSad $ maxFS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top