2011-05-11 50 views
0

我想根據評分設置標籤的字體大小。這就是我的樣本收視率的樣子:選擇標籤雲的字體大小(rails3)

206 82 25 24 25 19 8 5 0 3 2 1 6 1 1 0 32 6 3 -1 112 31 6 8 2 24 18 2 2 1 
1 1 2 6 67 35 37 25 0 1 7 8 2 3 0 1 2 1 -2 8 19 -2 1 1 -3 -4 6 1 1 8 11 3 
1 3 1 2 5 1 0 1 1 2 2 2 1 2 2 1 1 1 1 1 0 1 1 2 1 2 1 1 0 1 1 2 1 1 1 1 1 
1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 -1 0 1 -1 -1 1 -1 -1 0 -5 
-1 2 2 

我用K-均值聚類(gem)嘗試,但我似乎無法挑質心權數,因爲我的收視率有所不同情況而定。另外,我不確定要使用的字體範圍。什麼是最好的方法來做到這一點?

+0

剛一說明:像'行爲-AS-加標籤上,steroids'寶石爲你自動生成標籤雲。 – sscirrus 2011-05-11 08:27:36

回答

0

在這裏,你會發現使用基於每個標籤的出現的次數數刻度字體大小的算法: http://blogs.dekoh.com/dev/2007/10/29/choosing-a-good-font-size-variation-algorithm-for-your-tag-cloud/

+0

你如何確定這種方式的最小和最大字體大小? – David 2011-05-11 22:29:58

+0

您可以通過'minOccurs'和'maxOccurs'設置字體大小。在我的腳本中,我使用CSS類s1到s5,所以我有5種尺寸。這裏'min'和'max'是任何標籤的最小/最大外觀數:'1 +((5-1)*(Math.log(count)-Math.log(min))/(Math.log (最大)-Math.log(分鐘)))。round'。警告:在某些情況下,不要用零除。字體大小爲8pt到14pt粗體。 – arnep 2011-05-12 08:35:26

0

嘗試i2ui針對此問題:

  1. 定義字體範圍。
  2. 設置標籤費率。

    <div data-i2="css:[{fontSize:'8px'},{fontSize:'25px'}]"> 
        <span data-i2="rate:1">Word1</span> 
        <span data-i2="rate:82">Word2</span> 
        <span data-i2="rate:-5">Word3</span> 
        <span data-i2="rate:12">Word4</span> 
    </div> 
    

演示:http://jsfiddle.net/x4558/