Frage

Was ist eine gute Tag -Cloud -Logik, die Sie sich ausgedacht haben? wie fontsize = faktor * prozentageofoccurance ....

War es hilfreich?

Lösung

Sie müssen eine Mindestgröße festlegen, also vielleicht fontsize = minsize + factor * percentage.

Möglicherweise möchten Sie den Größenbereich einschränken. Nehmen Sie vielleicht das SQRT oder das Protokoll des Prozentsatzes, aber dies hängt von Ihrer Verteilung ab.

Schauen Sie sich diesen Blog -Beitrag von Poeticcode an an, um eine weitere Technik zu erhalten Tag -Cloud -Algorithmen:

Wie setzen wir in der linearen Interpolation die Min- und Max -Grenzen für die Schriftgröße/Farbintensität für Schriftarten? Ich stelle fest, dass Amazon.com beispielsweise die Schriftgrößen zwischen 80% und 280% beträgt. Das niedrigste Tag in der Cloud würde also eine Schriftgröße von 80% und das höchste Tag 280% erhalten. Ich habe mich für die folgende Formel entschieden

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

Dies ergibt eine Schriftgröße von 75% bis 300%, da sich die Metrik von potenziellen 0 bis maxm ändert.

Andere Tipps

Ich würde das Ereignis für jedes Element überprüfen und das "Maximum" verfolgen (das Element mit der höchsten Anzahl, da dies Ihre Maßnahme ist).

Berechnen Sie als nächstes den Prozentsatz des Vorfalls für jedes Element im Vergleich zum Element mit dem Maximum (was 100%beträgt). Zum Beispiel:

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

Erstellen Sie als nächstes CSS -Stile für 20 /40 / 60/080 / 100 Prozentwerte und wenden Sie den richtigen CSS -Stil entsprechend dem Prozentsatz an.

Oder Sie könnten, wie Sie vorgeschlagen haben, die Schriftgröße berechnen.

Holen Sie sich zuerst Ihren Max. und min und berechnen Sie die Ausbreitung. ($ max - $ min). Ihre Schriftgrößeninkrements wäre der "Schritt" - im Grunde genommen ($ max - $ min) / $ Spread.

Jetzt können Sie Ihre Schriftgrößen entsprechend berechnen:

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

Vergessen Sie nicht, Ihr Ergebnis zu runden.

Könnte den zweiten Teil an Ihre Tag -Cloud -Implementierung Min und Max schreiben und mich ein bisschen verwirrt verbreiten.

Ich habe die Tag -Cloud -Berechnung so gemacht:

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

Auf diese Weise können Sie je nach Bedarf runde Schriftgrößen runden.

Schriftgröße wird niemals die Schriftgröße von $ minfsad $ maxfs überschreiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top