TagCloudsまたはTagCloudロジックを使用したベストプラクティス? [閉まっている

StackOverflow https://stackoverflow.com/questions/2378576

  •  24-09-2019
  •  | 
  •  

質問

あなたが思いついた良いタグクラウドロジックは何ですか? 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のフォントサイズ範囲を超えることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top