D3.js 这张图表在d3选择中指的是什么?

D3.js 这张图表在d3选择中指的是什么?,d3.js,D3.js,我一直在到处闲逛。在这两种情况下,当前比例都是使用如下方式检索的 var x0 = this.__chart__ || d3.scale.linear() .domain([0, Infinity]) .range(x1.range()); …其中,x1是当前比例对象。我意识到这个习惯用法是用来更新方框图或子弹图的,但是有人能解释一下怎么做吗?这张图表是指什么?缩放对象?为什么是有条件的?(|)当当前刻度不太可能有这么大的范围时,x0的域为什么覆盖0到无穷大的范围 如果我的问题没有明确

我一直在到处闲逛。在这两种情况下,当前比例都是使用如下方式检索的

var x0 = this.__chart__ || d3.scale.linear()
  .domain([0, Infinity])
  .range(x1.range());
…其中,
x1
是当前比例对象。我意识到这个习惯用法是用来更新方框图或子弹图的,但是有人能解释一下怎么做吗?这张图表是指什么?缩放对象?为什么是有条件的?(
|
)当当前刻度不太可能有这么大的范围时,
x0
的域为什么覆盖0到无穷大的范围


如果我的问题没有明确说明,我表示歉意。任何帮助都将不胜感激。

上下文是包含图表的DOM元素:即
g
元素。将一些变量绑定到DOM元素,例如this.myvar=state
,提供了一种处理特定于图表的状态的方法。对一个特定的chart g元素的多个更新调用都将访问同一个变量

Mike和Jason在各种图表中以及在中使用了属性名
\uuuuu chart\uuuuu
,以跟踪图表特定的状态

在本例中,存储在g元素的
\uuuu chart\uuu
属性中的比例是正确的。见bullet.js节选:

  // Compute the new x-scale.
  var x1 = d3.scale.linear()
      .domain([0, Math.max(rangez[0], markerz[0], measurez[0])])
      .range(reverse ? [width, 0] : [0, width]);

  // Retrieve the old x-scale, if this is an update.
  var x0 = this.__chart__ || d3.scale.linear()
      .domain([0, Infinity])
      .range(x1.range());

  // Stash the new scale.
  this.__chart__ = x1;
因此,基于当前数据确定刻度
x1
。它将存储在
\uuuuu图表\uuuuuu
中,以便将来使用新数据更新此图表时使用

上一个刻度取自此图,并保存在
x0
中。当图表刚刚构建(即进入阶段)时,
this.\uuuuu图表将返回
undefined
。在这种情况下,
x0
将变成
d3.scale.linear().domain([0,无穷大]).range(x1.range())
。看

为了平稳过渡,需要使用旧的刻度。当输入新的数据点时,我们首先希望使用旧的比例在图表上绘制它们。之后,我们将根据新的比例转换所有点(新的和更新的)


关于[0,无穷大]域。因此,只有在图表刚刚构建时,才会使用具有此域的比例。这意味着它提供了一种在引入图表时设置初始转换的方法。具有有限范围的无限域意味着所有点都缩放为0。因此,在设置图表时,所有点都将以0绘制,并根据x1比例转换为正确的值。

上下文是包含图表的DOM元素:即a
g
元素。将一些变量绑定到DOM元素,例如this.myvar=state,提供了一种处理特定于图表的状态的方法。对一个特定的chart g元素的多个更新调用都将访问同一个变量

Mike和Jason在各种图表中以及在中使用了属性名
\uuuuu chart\uuuuu
,以跟踪图表特定的状态

在本例中,存储在g元素的
\uuuu chart\uuu
属性中的比例是正确的。见bullet.js节选:

  // Compute the new x-scale.
  var x1 = d3.scale.linear()
      .domain([0, Math.max(rangez[0], markerz[0], measurez[0])])
      .range(reverse ? [width, 0] : [0, width]);

  // Retrieve the old x-scale, if this is an update.
  var x0 = this.__chart__ || d3.scale.linear()
      .domain([0, Infinity])
      .range(x1.range());

  // Stash the new scale.
  this.__chart__ = x1;
因此,基于当前数据确定刻度
x1
。它将存储在
\uuuuu图表\uuuuuu
中,以便将来使用新数据更新此图表时使用

上一个刻度取自此图,并保存在
x0
中。当图表刚刚构建(即进入阶段)时,
this.\uuuuu图表将返回
undefined
。在这种情况下,
x0
将变成
d3.scale.linear().domain([0,无穷大]).range(x1.range())
。看

为了平稳过渡,需要使用旧的刻度。当输入新的数据点时,我们首先希望使用旧的比例在图表上绘制它们。之后,我们将根据新的比例转换所有点(新的和更新的)


关于[0,无穷大]域。因此,只有在图表刚刚构建时,才会使用具有此域的比例。这意味着它提供了一种在引入图表时设置初始转换的方法。具有有限范围的无限域意味着所有点都缩放为0。因此,设置图表时,所有点都将标为0,并根据x1比例转换为正确的值。

!谢谢你的清楚解释。非常感谢,太棒了!谢谢你的清楚解释。非常感谢。