Domanda

quali sono alcune buone logiche di tag Cloud che hai ideato?come dimensione carattere = fattore * percentualeOfOccurance ....

È stato utile?

Soluzione

Dovrai impostare una dimensione minima, quindi forse fontsize = minsize + factor * percentage.

Potresti voler limitare la gamma di dimensioni;forse prendi sqrt o log della percentuale, ma questo dipende dalla tua distribuzione.

Per un'altra tecnica, dai un'occhiata a questo post sul blog da poeticcode in poi Algoritmi di tag cloud:

Successivamente, nell'interpolazione lineare, come impostiamo i limiti minimo e massimo per la dimensione del carattere/l'intensità del colore?Ho notato che Amazon.com, ad esempio, varia le dimensioni dei caratteri tra l'80% e il 280%.Pertanto, il tag più basso nel cloud otterrebbe una dimensione del carattere dell'80% e il tag più alto del 280%.Ho deciso di utilizzare la seguente formula

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

Ciò fornisce una dimensione del carattere compresa tra il 75% e il 300% poiché la metrica cambia da un potenziale 0 a maxm.

Altri suggerimenti

Controllerei l'evento per ogni elemento e tenere traccia del "massimo" (l'elemento con il conteggio più alto in quanto sarà la tua misura).

Quindi calcola la percentuale di occhiali per ciascun elemento, rispetto all'elemento con il massimo (che è al 100%). Per esempio:

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

Quindi creare stili CSS per valori percentuali 20/40/60/80 / 100 e applicare lo stile CSS corretto in base alla percentuale.

Oppure potresti suggerire di calcolare la dimensione del carattere.

Prima prendi il tuo massimo. e min e calcola la diffusione. ($ max - $ min). Il tuo incremento di dimensioni del carattere sarebbe il "passaggio" - che è fondamentalmente ($ max - $ min) / $.

Ora puoi calcolare le dimensioni del carattere di conseguenza:

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

Non dimenticare di arrotondare il tuo risultato.

Potrebbe scrivere la seconda parte a Tag cloud Implementation Min e Max e diffondersi un po 'confuso.

Ho realizzato tag cloud calcolando in questo modo:

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

Ciò ti consente di arrotondare le dimensioni dei caratteri a seconda delle tue esigenze.

La dimensione del carattere non supererà mai la gamma di dimensioni del carattere di $ Minfsad $ maxfs.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top