2016-03-02 64 views
1

因此,我正在顯示一個柱形圖,它具有沿x軸的日期和在y軸上的時間。ChartKick中的彩色列

它顯示生成時間,但有時構建失敗(從模型build_state可以是「成功」或「失敗」)

我想說明的成功酒吧是綠色的,而失敗的人是紅。

這是我得到的數據:

@column_chart_result = @bamboo_results.pluck(:build_start_time,:build_duration_minutes) 

,然後創建圖表:

<%= column_chart @column_chart_result, colors: ["green", "red"], width: "600px" %> 

顯然它會顯示所有的酒吧爲綠色,我不知道如何加入邏輯顯示build_state併成功顯示爲綠色,失敗爲紅色?

+0

使用Highcharts或谷歌圖表? – Undo

+0

谷歌圖表! – user3437721

+0

切換到Highcharts有多難?我有一個準備好進入Highcharts的解決方案;做這樣更復雜的事情會容易一點。 – Undo

回答

1

所有這一切都假設您正在使用Highcharts。我建議你使用Highcharts;這是一個有點容易做更復雜的事情是這樣的:

enter image description here

這裏就是你需要做的:

@column_chart_result = @bamboo_results.pluck(:build_start_time, :build_duration_minutes, :build_state) 

# Take out the :build_state column for Highcharts: 
@highcharts_data = @column_chart_result.map {|n| [n.first, n.second]} 

# Build an array of colors 
@highcharts_colors = @column_chart_result.map {|n| n.build_state == "Successful" ? "green" : "red" } 

<%= column_chart @highcharts_data, colors: @highcharts_colors, width: "600px", library: {"plotOptions": {"series": {"colorByPoint": true }}} %> 

我測試過我自己的(不同的)數據集類似的方法。當然,我還沒有在您的數據集上對其進行測試。讓我知道它是否會引發錯誤或無法正常工作。

+0

謝謝明天更新 – user3437721

+0

我嘗試了代碼並修改了視圖以使用此行: <%= column_chart highcharts_data,colors:highcharts_colors,width:「600px」,library:{「plotOptions」=> {「series」= > {「colorByPoint」=> true}}}%> 但仍然它的所有綠色,任何想法如何在gcharts中使用? – user3437721