你有什么好的标签云逻辑?比如fontsize = factor * percentageOfOccurance ....tagclouds或tagCloud逻辑的最佳做法?
4
A
回答
5
你需要设置一个最小尺寸,所以也许fontsize = minsize + factor * percentage
。
您可能想要限制尺寸范围;也许采取sqrt或日志的百分比,但这取决于你的分布。
对于另一种技术,看看从poeticcode这个博客帖子上Tag Clouds Algorithms:
接下来,在直线插补,我们怎么设置字体大小/颜色强度最小和最大的界限?例如,我注意到Amazon.com的字体大小在80%到280%之间。因此,云中最低的标签将获得80%的字体大小,最高的标签达到280%。我已决定去与下式
150 *(1.0 +(1.5 * M-MAXM/2)/ MAXM)
这很好地给出了一个字体尺寸从75%至300%为指标的变化从0到maxm。
2
我会检查每个元素的发生并跟踪“最大值”(具有最高计数的元素,因为这将是您的度量)。
接下来计算每个元素出现的百分比,与具有最大值(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
不要忘记圆你的结果。
0
可以写第二部分给你标签云实现最小和最大并传播我有点困惑。
0
我做了标签云计算是这样的:
$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的字体大小范围。
相关问题
- 1. 逻辑或查找表:最佳做法
- 2. 查询逻辑最佳方法
- 3. 将Angular 2中的表示逻辑与应用逻辑分开的最佳做法是什么?
- 4. c#combobox编辑 - 最佳做法
- 5. 有几种部分重叠的逻辑流使用DRY的最佳做法吗?
- 6. 什么是在PHP中返回函数的逻辑错误的最佳做法
- 7. 在iOS中实现加密逻辑的最佳做法是什么?
- 8. 由于业务逻辑错误而离开功能的最佳做法
- 9. 最佳做法response.getOutputStream
- 10. 最佳做法UIScrollView
- 11. 最佳做法applicationDidEnterBackground
- 12. estimatedHeightForRowAtIndexPath最佳做法
- 13. 最佳实践:如果逻辑控制
- 14. 如何做一个逻辑或在CLIPS?
- 15. pop和unshift方法背后的逻辑或最佳实践是什么?
- 16. 检测逻辑连接器的最佳方法
- 17. 语法或逻辑错误
- 18. Math.Pow的最佳做法
- 19. infinity.js的最佳做法
- 20. Sqlite的最佳做法Android
- 21. viewDidUnload中的最佳做法?
- 22. Rails的最佳做法
- 23. webservices的最佳做法
- 24. 类的最佳做法
- 25. elasticsearch id的最佳做法
- 26. 2列的逻辑运算(逻辑或)
- 27. 轨做的if/else逻辑
- 28. 尝试编辑不存在的项目的最佳做法?
- 29. C#继承最佳做法
- 30. 最佳做法__unicode __(self)