Chartkick列图表多种颜色

Vuc*_*cko 5 ruby-on-rails chartkick

我在我的RoR项目中使用chartckick来生成图表,这非常好用.(以及Google Charts).

我创建了一个柱形图只有2条(男性和女性).

在此输入图像描述

现在客户想要每个酒吧都有不同的颜色?那可能吗?

我看过这篇文章 - 如何更改用Chartkick创建的柱形图的颜色?但它已经超过了一半的年龄,我希望现在有办法为酒吧指定更多的颜色.

更新

我的代码看起来像:

调节器

@followers_gender_count = Project.find(params[:id]).followers.group(:gender).count
Run Code Online (Sandbox Code Playgroud)

视图

<%= column_chart parse_gender_data(@followers_gender_count) %>
Run Code Online (Sandbox Code Playgroud)

帮手

def parse_gender_data(data)
  gender_data = Hash.new
  gender_data[:male] = data[1]
  gender_data[:female] = data[2]
  ({ 'Male' => gender_data[:male], 'Female' => gender_data[:female] })
end
Run Code Online (Sandbox Code Playgroud)

更新2 - GitHub上的问题

jtl*_*sey 8

以下也有效.我在初始化器中没有任何新文件(没有chartkick.rb文件),这只是通过将以下代码添加到我的帮助文件中来实现的:

  def networth_data
    [
      {name: "Assets", data: {"NetWorth": 6979.53}}, 
      {name: "Liabilities", data: {"NetWorth": 10532.32}}
    ]
  end
Run Code Online (Sandbox Code Playgroud)

然后在我的html.erb中我指定了我想要的颜色和其他选项:

<%= column_chart networth_data, 
  colors: ["green", "#FF0000"], 
  library: {backgroundColor: "#FFF", height: 265} %>
Run Code Online (Sandbox Code Playgroud)

...呈现此图表:

在此输入图像描述


Vuc*_*cko 5

@buren 在 GitHub 上的评论来看,使用不同的 JSON 结构似乎会在column_cart.


我更改了Helper 中的输出:

def parse_gender_data(data)
  gender_data = Hash.new
  gender_data[:male] = data[1]
  gender_data[:female] = data[2]
  [{"name" => "Male","data" => {"Gender" => gender_data[:male]}},{"name" => "Female","data" => {"Gender" => gender_data[:female]}}]
end
Run Code Online (Sandbox Code Playgroud)

并创建了chartkick.rb 配置文件 ( config/initializers/chartkick.rb),添加了一些颜色

Chartkick.options = {
  colors: ["#63b598", "#ce7d78", "#ea9e70", "#a48a9e", "#c6e1e8"]
}
Run Code Online (Sandbox Code Playgroud)


输出所需的结果:

在此处输入图片说明