Der Versuch, ein Liniendiagramm mit mehreren Reihen zu erstellen. (Visualizer ist Chartjs.) Aus dem README
:Schienen Chartkick. Liniendiagramm mit mehreren Reihen und verschachteltem Hash
<%= line_chart [
{name: "Series A", data: series_a},
{name: "Series B", data: series_b}
] %>
Meine Daten sind bereits im JSON-Format kommt, aber braucht ein wenig Manipulation richtig zu machen. Rohform sieht wie folgt aus:
=> [{"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
Also, mit markets.map{ |m| [name: m['runner'], data: m['histories'].map{|h| [h['created_at'], 1/h['price']] }]}.flatten!
, die ergibt:
=> [
{: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
Obwohl ich nicht einen Fehler, das Diagramm ist eine leere Quadranten mit [object Object]
bei 0,0 .
Das Diagramm ist in einem @markets.each
Block meiner Ansicht nach, weil ich mehrere Diagramme die Seite erstellen möchte, die dasselbe mit anderen Daten zeigt. Ich spielte mit einem .each_with_index
um, und ich kann die Grafik teilweise nur um zu zeigen, zu erhalten, indem die Daten manuell wie die README
zeigt Eingabe:
<%= 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']]}}
] %>
, die die ersten beiden Reihen auf dem Chart zeigt, kann aber nicht die richtige sein So wie es verschiedene i-Elemente für jedes Diagramm gibt.
Was kann ich tun?