你有什麼好的標籤雲邏輯?比如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. 在SELECT上應用按位AND邏輯的最佳做法
- 3. JavaMail編程最佳或最佳做法
- 4. spring-mvc:分割邏輯什麼是最佳做法
- 5. 查詢邏輯最佳方法
- 6. c#combobox編輯 - 最佳做法
- 7. 將Angular 2中的表示邏輯與應用邏輯分開的最佳做法是什麼?
- 8. 數據庫邏輯進出數據庫的最佳做法。在數據庫中保存邏輯?
- 9. 有幾種部分重疊的邏輯流使用DRY的最佳做法嗎?
- 10. 什麼是在PHP中返回函數的邏輯錯誤的最佳做法
- 11. 由於業務邏輯錯誤而離開功能的最佳做法
- 12. 比較器的最佳做法當項目不能進行邏輯比較時
- 13. 在iOS中實現加密邏輯的最佳做法是什麼?
- 14. WPF XAML - DataTriggers或ValueConverters?最佳做法
- 15. RabbitMQ - 最佳做法
- 16. 最佳做法response.getOutputStream
- 17. estimatedHeightForRowAtIndexPath最佳做法
- 18. 最佳做法applicationDidEnterBackground
- 19. 最佳做法UIScrollView
- 20. ActionListener最佳做法
- 21. CLLocationManager最佳做法
- 22. 最佳實踐:如果邏輯控制
- 23. 創建邏輯在最佳途徑
- 24. pop和unshift方法背後的邏輯或最佳實踐是什麼?
- 25. 如何做一個邏輯或在CLIPS?
- 26. 檢測邏輯連接器的最佳方法
- 27. 將案例邏輯構建到SQL中的最佳方法
- 28. 建模的最佳方法安裝邏輯/流程
- 29. 類的最佳做法
- 30. Ember ArrayProxy的最佳做法