2013-10-25 112 views
6

我安裝了chartkick 1.2.0和groupdate 1.0.4 gem。當我嘗試去做某事,如:Chartkick y軸不正確標籤

<%= area_chart Match.group_by_day_of_week(:created_at).count, :width=>"700px;", :height=>"150px;" %> 

我得到這個:

enter image description here

它總是給我錯誤的y軸。我應該如何格式化它,以便顯示「星期一」,「星期二」...

我的第二個例子,我也無法正確地將它按一小時分組。

<% abc=Matches.on_location(@location).group_by{|b| b.created_at.strftime("%H").to_i} %> 
    <% abc.update(abc){|key, v| v.length} %> 
    <%= abc=abc.sort_by{|k,v| k} %> 
    <%= area_chart abc, :width=>"700px;", :height=>"150px;" %> 

我在做什麼錯,它顯示1:00:00 AM。等?我只希望有數字,例如:0,1,2,3 .. 23?

我搜索了一下,從頂部到底部檢查他們的文檔:http://ankane.github.io/chartkick/現在幾個小時,我真的不知道我錯過了什麼。任何幫助將不勝感激!

回答

2

This thread Chartkick的Github表明圖表庫(Highcharts,在你的案例中?)對你想要什麼樣的X軸做出假設。有人猜測,我會說這裏的問題是,圖書館做出了一個不正確的假設,所以嘗試以更明顯的格式命名輸入的密鑰。

在你的第一個例子,你可以嘗試使用"Monday""Tuesday"等作爲關鍵字,而不是01等:

results = Match.group_by_day_of_week(:created_at).count # hash with numeric keys 
days = %w(Monday Tuesday Wednesday Thursday Friday Saturday Sunday) 
results = results.inject({}){|a, (k,v)| a.update(days[k] => v); a } # change numeric keys to weekday name 

對於第二個例子,嘗試格式化日期%H:%M:%S所以它更顯然你想要一個時間軸:

abc=Matches.on_location(@location).group_by{|b| b.created_at.strftime("%H:%M:%S")} 
+0

不幸的是,給定的代碼也不起作用。我試着用大寫的小寫字母的日期名稱,我命名他們的名字,並給了星期天的第一名。它沒有工作。對於你的第二個例子,我嘗試過,如果我將它們按秒分組,我會得到一個關鍵值對的gazzilon。我嘗試過,但它也不起作用。 – necker

+0

這真是一個恥辱,因爲我對Chartkick並不是特別熟悉,所以這是一個黑暗中的鏡頭。也許考慮在他們的Github上打開一個線程/提交一個錯誤,這樣一個在項目上工作的人可以看看並且讓你知道是否有你需要做的事情,或者如果這是意外的行爲。 – james246

1

不幸的是,現在沒有辦法做到這一點。作爲替代方案,您可以嘗試一個柱形圖。

+0

你爲什麼認爲這不可行? – necker

+4

我寫了chartkick :) –

+0

不錯的一個,... :) – necker