Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ChartKick中的彩色列_Ruby On Rails_Chartkick - Fatal编程技术网

Ruby on rails ChartKick中的彩色列

Ruby on rails ChartKick中的彩色列,ruby-on-rails,chartkick,Ruby On Rails,Chartkick,所以我显示了一个柱状图,它的日期在x轴上,时间在y轴上 它显示生成时间,但有时生成失败(模型的生成状态可以是“成功”或“失败”) 我想让成功的酒吧变成绿色,失败的酒吧变成红色 这是我获取数据的方式: @column_chart_result = @bamboo_results.pluck(:build_start_time,:build_duration_minutes) 然后创建图表: <%= column_chart @column_chart_result, colors: ["g

所以我显示了一个柱状图,它的日期在x轴上,时间在y轴上

它显示生成时间,但有时生成失败(模型的生成状态可以是“成功”或“失败”)

我想让成功的酒吧变成绿色,失败的酒吧变成红色

这是我获取数据的方式:

@column_chart_result = @bamboo_results.pluck(:build_start_time,:build_duration_minutes)
然后创建图表:

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


显然,它将所有的条显示为绿色,我不确定如何添加逻辑来显示构建状态,并将成功显示为绿色,将失败显示为红色?

所有这些都假设您使用的是Highcharts。我建议你使用海图;这样做更复杂的事情更容易一些:

以下是您需要做的:

@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 }}} %>
@column\u chart\u result=@bambon\u results.pull(:构建开始时间,:构建持续时间,:分钟,:构建状态)
#取出Highcharts的:build_state列:
@highcharts_data=@column_chart_result.map{{| n |[n.first,n.second]}
#构建一个颜色数组
@highcharts_colors=@column_chart_result.map{n | n.build_state==“成功”?“绿色”:“红色”}

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

您使用的是Highcharts还是Google Charts?切换到Highcharts有多难?我有一个解决方案,可以在高图中使用;像这样做更复杂的事情更容易一些。我尝试了代码并修改了视图以使用这一行:{“series”=>{“colorByPoint”=>true}}}}%>但它仍然是绿色的,有没有在gcharts中使用的方法?