d3.js:是否可以按键而不是索引进行转换?

时间:2013-09-26 17:29:25

标签: d3.js

我有不同长度的数据数组,x值(Years)是有限年数的一部分,例如:

var data = [{Year: 2008, Value: 5}, {Year: 2009, Value: 6}]

var data = [{Year: 2007, Value: 8}, {Year: 2009, Value: 10}, {Year: 2010, Value: 11}]

现在,如果我从具有更多值的数据集转换到具有更少值的数据集,则(2007,8)点将被内插到(2008,5),并且它看起来很奇怪。我想要的是按键插入(在这种情况下为年份)。

我非常清楚如何使用带有following tutorial的条形图来完成它,它只是将一个键函数传递给selection.data,以便通过键而不是索引进行绑定。

如果是一行,你似乎无法传递一个键函数,因为你传递的数据必须是一个数组数组(基数是一个点数组)。

使用折线图时,如何获得类似的结果?

1 个答案:

答案 0 :(得分:2)

这取决于您使用的线路生成器。简而言之,没有简单的方法可以做到这一点。这里有几个选项。

  • 也可以调整图表的比例。这将使过渡看起来不那么奇怪。
  • 将您的行划分为多个细分。这样,您可以删除其中一个段而不影响其他段。这可能不起作用,具体取决于您使用的插值等。
  • 添加虚拟元素以填充数据数组,使其长度始终相同。根据您的应用可能不合适,因为仍然会为虚拟元素绘制线的部分。

完全取决于您的应用程序哪个选项最合适(或者可能有另一个选项)。我可能会先尝试第一个,因为它很容易实现。

相关问题