javascript - 使用函数索引数组

标签 javascript d3.js

我正在尝试修改https://github.com/jasondavies/science.js/tree/master/examples/kde中的核密度估计示例只有一个 1 行而不是 2 行。为此,我需要修改下面的代码。更具体地说,我需要修改 .data(d3.values(science.stats.bandwidth))。从 Chrome 开发者工具中我可以看到从 var bw = d3.values(science.stats.bandwidth) 返回的变量如下:

bw: Array[2]
0: function (x) {
1: function (x) {
length: 2
__proto__: Array[0]

我尝试对此变量建立索引,但返回的函数无法用于绘图。它变成未定义

var granularity = 0.1;
var x_min = 30;
var x_max = 110;

d3.json("faithful.json", function(faithful) {
  data = faithful;
  var w = 800,
      h = 400,
      x = d3.scale.linear().domain([30, 110]).range([0, w]);
      bins = d3.layout.histogram().frequency(false).bins(x.ticks(60))(data),
      max = d3.max(bins, function(d) { return d.y; }),
      y = d3.scale.linear().domain([0, .1]).range([0, h]),
      kde = science.stats.kde().sample(data);

  var vis = d3.select("body")
    .append("svg")
      .attr("width", w)
      .attr("height", h);

   var bars = vis.selectAll("g.bar")
      .data(bins)
    .enter().append("g")
      .attr("class", "bar")
      .attr("transform", function(d, i) {
        return "translate(" + x(d.x) + "," + (h - y(d.y)) + ")";
      });

  bars.append("rect")
      .attr("fill", "steelblue")
      .attr("width", function(d) { return x(d.dx + 30) - 1; })
      .attr("height", function(d) { return y(d.y); });

  var line = d3.svg.line()
      .x(function(d) { return x(d[0]); })
      .y(function(d) { return h - y(d[1]); });

  var bw = d3.values(science.stats.bandwidth);

  vis.selectAll("path")
      /* .data(d3.values(science.stats.bandwidth)) */
      .data(bw[1])
    .enter().append("path")
      .attr("d", function(h) {
        return line(kde.bandwidth(h)(d3.range(x_min, x_max, granularity)));
      });
});

最佳答案

.data() 需要 array 。使用:

.data([bw[1]])

示例 here .

关于javascript - 使用函数索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29459361/

相关文章:

javascript - 在javascript中循环以 append 一系列div

javascript - 将值添加到 PHP 数组中的特定键位置

javascript - 与 10,000 个对象交互的高性能

javascript - 按父类划分的气泡图颜色

javascript - 让 VSCode 使用 JSCS 格式化规则

javascript - 你如何使用 JavaScript 在 QtQuick Qml 中进行大量数学运算

javascript - 如何使 D3js 对象在鼠标移动到对象附近时更改其属性?

javascript - 链接中的标签未显示

javascript - 在 D3 中鼠标悬停时触发两个单独的事件

javascript - json 对象 javascript 困惑