Ich verwende die NVD3-Bibliothek, um einfache Liniendiagramme basierend auf Daten zu erstellen, die in einem Rails-Controller generiert werden. Der Code, den ich unter Verwendung von Daten in Rails zu erzeugen ist:NVD3 Liniendiagramm Uncaught TypeError: Kann die Eigenschaft 'x' von undefined nicht lesen
task.task_values.each do |u|
array.push({ :x => u.created_at.to_i * 1000, :y => u.value.to_i })
end
data_label = task.name + " ("+ task_unit +")"
taskValuesList = [{:key => data_label, :values => array}]
data = {:type => "line", :data => taskValuesList}
Dann meiner Meinung nach, ich habe den folgenden JS-Code habe:
nv.addGraph(function() {
var chart = nv.models.lineChart()
.x(function(d) { return d.x; })
.y(function(d) { return d.y; });
chart.xAxis
.showMaxMin(false)
.tickFormat(function(d){return d3.time.format("%m/%d/%y")(new Date(d));});
chart.yAxis
.tickFormat(d3.format(',d'));
d3.select('#chart<%= i %> svg')
.datum(data.data)
.transition().duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
Die Grafik macht richtig, aber wenn ich versuche, Mouseover-Datenpunkte den Tooltip zu zeigen, erhalte ich die Fehlermeldung „nicht abgefangene Typeerror: kann Eigenschaft‚x‘undefinierten lesen“
Können Sie Ihre Frage mit den Daten aktualisieren, die an das Diagramm übergeben wurden. – shabeer90
Hier einige Beispieldaten: [{: key => " Blutdruck Diastolisch (mmHg) ",: Werte => [{: x => 1373403179000,: y => 91}, {: x => 1373403469000,: y => 95}, {: x => 1373403567000,: y => 61}, {: x => 1373404123000,: y => 56}, {: x => 1373404515000,: y => 56}, {: x => 1373404592000,: y => 56}, {: x => 1373404749000,: y => 56}, {: x => 1373405085000,: y => 56}]}] – rushilg
Ich habe keine Ahnung von Ruby-on-Rails, aber haben die Daten ein JSON-Objekt? – shabeer90