2013-09-26 26 views
0

我具有变化的长度的数据阵列,其中一个x值(年),其是一个有限数年的一部分,例如:d3.js:是否可以按键而不是索引进行转换?

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以便通过键而不是索引进行绑定。

对于某一行的情况,由于您传递的数据必须是一个数组数组(数据是一个点数组),因此您似乎无法传递一个键函数。

如何使用折线图处理类似的结果?

回答

2

这取决于您使用的生产线。总之,没有简单的方法来做到这一点。这里有几个选项。

  • 调整图形的比例。这将使转变看起来不那么怪异。
  • 将您的线划分为几个部分。这样,您可以删除其中一个分段而不影响其他分段。这可能不起作用,取决于你使用的插值等。
  • 添加虚拟元素来填充您的数据数组始终具有相同的长度。可能不适合您的应用程序,因为线的部分仍然会绘制为虚拟元素。

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

+0

非常感谢您的快速回复。选项1绝对看起来更容易,但从设计意义上讲,我认为明确说明某些年份缺少数据会更好,另外我刚刚意识到如果两者之间存在缺失年份,那么该图只会没有道理。所以我想我会看看选项2和3.再次感谢! –

+0

对于缺失的数据位,您需要第二个选项,即有多个线段。 –

+0

谢谢你,拉尔斯。花了我5个小时找到这个线程,并阅读你不能通过键绑定行数据。 – peter

相关问题