TagCloudsまたはTagCloudロジックを使用したベストプラクティス? [閉まっている
質問
あなたが思いついた良いタグクラウドロジックは何ですか? fontsize = factor * perperentageofoccuranceのように。
解決
最小サイズを設定する必要があるので、多分 fontsize = minsize + factor * percentage
.
サイズの範囲を制限することをお勧めします。おそらく、パーセンテージのSQRTまたはログを取得しますが、これは分布に依存します。
別のテクニックについては、PoeticCodeのこのブログ投稿をご覧ください タグクラウドアルゴリズム:
次に、線形補間では、フォントサイズ/色の強度に最小境界と最大境界をどのように設定しますか?たとえば、Amazon.comは、フォントサイズの80%から280%の範囲であることに気付きます。したがって、クラウドで最も低いタグは、80%のフォントサイズ、最高のタグ280%を取得します。私は次の式で行くことにしました
150*(1.0+(1.5*m-maxm/2)/maxm)
これにより、メトリックが潜在的な0からMAXMに変化するため、75%から300%のフォントサイズが得られます。
他のヒント
すべての要素の出来事をチェックし、「最大」(これがあなたの尺度になるので、最も高いカウントを持つ要素)を追跡します。
次に、最大の要素(100%)の要素と比較して、各要素の回数の割合を計算します。例えば:
foreach ($elements as $element) {
$percentage = floor(($element['count'] / $maximum) * 100);
}
次に、20 / 40/60/80 / 100パーセント値のCSSスタイルを作成し、パーセンテージに従って正しいCSSスタイルを適用します。
または、提案したとおり、フォントサイズを計算できます。
最初に最大を取得します。そして分からスプレッドを計算します。 ($ max -$ min)。フォントサイズの増分は「ステップ」です。これは基本的に($ max -$ min) / $ spreadです。
これで、それに応じてフォントサイズを計算できます。
$min_size + ($element['occurrence'] - $smallest_array_value) * $step
結果を忘れないでください。
Tag Cloud実装MinとMaxに2番目の部分を書くことができ、少し混乱します。
このようなタグクラウドを計算しました:
$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)));
}
これにより、必要に応じてフォントサイズを丸くすることができます。
フォントサイズは、$ minfsad $ maxfsのフォントサイズ範囲を超えることはありません。