ChartKick

时间:2016-03-02 16:52:41

标签: ruby-on-rails chartkick

所以我正在显示一个柱形图,它沿x轴有日期,在y轴上有时间。

它显示构建时间,但有时构建失败(模型中的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并且成功为绿色并且失败为红色?

1 个答案:

答案 0 :(得分: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 }}} %>

我在自己的(不同的)数据集上测试了类似的方法。当然,我还没有在你的数据集上测试它。如果它出现错误或无法正常工作,请告诉我。