Пытается сделать линейную диаграмму нескольких серий. (Visualizer является Chartjs.) Из README
:Rails Chartkick. Многострочная линейная диаграмма с вложенным хешем
<%= line_chart [
{name: "Series A", data: series_a},
{name: "Series B", data: series_b}
] %>
Мои данные поступают в формате JSON уже, но занимает немного манипуляций, чтобы получить право. Сырая форма выглядит следующим образом:
=> [{"id"=>30,
"runner"=>"Golden State Warriors",
"price"=>1.51,
"histories"=>[{"price"=>1.51, "created_at"=>"2016-11-19T17:42:18.699Z"}, {"price"=>1.51, "created_at"=>"2016-11-20T07:56:55.662Z"}]},
{"id"=>32, ETC
Так, с markets.map{ |m| [name: m['runner'], data: m['histories'].map{|h| [h['created_at'], 1/h['price']] }]}.flatten!
, который дает:
=> [
{:name=>"Golden State Warriors", :data=>[["2016-11-19T17:42:18.699Z", 0.6622516556291391], ["2016-11-20T07:56:55.662Z", 0.6622516556291391]]},
{:name=>"Los Angeles Clippers", :data=>[["2016-11-19T17:42:18.795Z", 0.1], ["2016-11-20T07:56:55.717Z", 0.1]]}, ETC
Хотя я не получаю сообщение об ошибке, то диаграмма является пустой квадрант с [object Object]
0,0 ,
На мой взгляд, диаграмма находится в блоке @markets.each
, потому что я хочу создать несколько диаграмм на странице, отображающей одно и то же с разными данными. Я играл с .each_with_index
и я могу получить график, чтобы показать частично только вручную ввод данных, как README
показывает:
<%= line_chart [
{name: markets[i]['runner'], data: markets[i]['histories'].map{|h| [h['created_at'], 1/h['price']]}},
{name: markets[i+1]['runner'], data: markets[i+1]['histories'].map{|h| [h['created_at'], 1/h['price']]}}
] %>
который показывает первые две серии на графике, но не может быть правильным так как для каждого графика есть разные элементы i.
Что я могу сделать?