簡體   English   中英

白天受歡迎的公式?

[英]Formula for popularity by day?

我有一個基本上是日歷的應用程序,用戶可以輸入每天的事件。 現在我必須找到最佳方式來顯示整個月的日歷,同時突出最忙碌的日子。

顯然顏色是這里的選擇,但我想知道你們會怎么做。 我頭腦風暴了以下幾點:

  • 獲取一天的max事件,然后從那里除以可用顏色的數量。 因此,如果有一天有30個事件,我們有3種顏色,第一個將是0到9,接下來是10到19,最后一個是20。
  • 找到average並用colors/2除以它,所以如果平均值是10個事件並且我們有3種顏色,則數學將是10 / 1.5 = 6.66,這意味着第一個顏色范圍將是0到6.66,第二個顏色范圍是6.67至13.32和最后一次從13.33開始。

但是,我不確定這是解決這個問題的最佳方法。 兩者都是線性的,如果我們的平均值大約為20並且最大值有100個事件,則第一個可能會使事情變得非常混亂,只會出現兩種顏色。

我不是靜態的,但我認為這個問題可以用百分位數和四分位數來解決,但我不確定如何實現它。

謝謝。

我建議使用一種用於構建標簽雲的邏輯分布算法。 標簽是你的日子,標簽的數量是一天的事件數量。

PHP和Python的一個很好的實現(尚未正確檢查)似乎就是這個 這是一個例子:

$tags = array(
    array('tag'   => 1,
          'count' => 10),
    array('tag'   => 2,
          'count' => 30),
    array('tag'   => 3,
          'count' => 5),
    array('tag'   => 4,
          'count' => 5));
$colours = array('green', 'yellow', 'red');
foreach(tagcloud($tags, 0, count($colours) - 1, 0) as $d) {
  echo  '<div style="background-color:' . $colours[floor($d['size'])] . '">Day: '.$d['tag'].' Events: '.$d['count'].'</div>';
}

一些想法:

  1. 確保均勻分布顏色:訂購N個事件/天並為每種顏色指定相同的天數
  2. 將N個事件/天映射到連續顏色范圍中的值,而不是使用離散桶。 例如,0到max(事件)到RGB值。
  3. 找到一個非線性分布 - 例如,正常,指數等。您正在尋找的公式是CDF(參見http://en.wikipedia.org/wiki/Cumulative_distribution_function ),它可用於轉換數量事件/天到百分位數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM