2016-03-02 65 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