你有哪些好的标签云逻辑?例如fontsize = factor * percentageOfOccurance ....
fontsize = minsize + factor * percentage
。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
$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)));
}
这将允许您根据需要调整字体大小。
字体大小将永远不会超过$minFS和$maxFS的字体大小范围。
你能给我写一下标签云实现的第二部分,包括最小值、最大值以及展开吗?我有点困惑。