【问题标题】:stacked dynamic line graph d3.js堆叠动态折线图 d3.js
【发布时间】:2013-07-05 08:51:15
【问题描述】:

知道如何将这个动态折线图堆叠起来吗? http://jsfiddle.net/praveen_jegan/QBDGB/6/

var options = {
    series: {
        stack: true,
        lines: {
            show: true,
            fill: true
        }
    },

大家有例子吗?

【问题讨论】:

  • This question 应该会有所帮助。
  • 回滚到以前的版本。 @sasha 我不确定您要做什么,但这是一个非常糟糕的问题编辑。

标签: javascript d3.js


【解决方案1】:

您可以查看 d3js.org 上的流图示例 http://bl.ocks.org/mbostock/4060954

【讨论】:

  • 感谢您的回答。我想知道是否可以在图形移动时制作堆叠图形。当 x 和 y 轴移动时,我还没有看到任何带有动态图的示例。
  • 实时蒸汽图示例。 lyngbaek.com/real-time-stream-graph.html
【解决方案2】:

您需要做的就是创建一个新数据集,它是旧数据的堆叠版本。

以下行将为您的示例执行此操作:

var data1s = data1;

var data2s = []; for(var i = 0; i < data1s.length; i++){data2s.push({time: data1[i].time, value:  data1s[i].value + data2[i].value}  )};

var data3s = []; for(var i = 0; i < data2s.length; i++){data3s.push({time: data2[i].time, value:  data2s[i].value + data3[i].value}  )};

var data4s = []; for(var i = 0; i < data3s.length; i++){data4s.push({time: data3[i].time, value:  data3s[i].value + data4[i].value}  )};

这是创建此数据的最丑陋的方式,但它确实有效。我已经创建了一个小提琴here.

请注意,在使我的小提琴工作时,我需要首先创建此数据,引用此新堆叠数据代替原始数据,并更新堆叠数据。

【讨论】:

  • 非常感谢您的回答 :) 很好。但它仍然没有堆叠,我无法填充该区域。堆叠适用于一个系列,但对于多个系列,颜色会崩溃:(
  • 我不完全确定你的意思。我的示例不是您正在寻找的那种“堆叠”,还是您的代码仍有问题?
  • 你好 :) 对不起,我误解了你,但堆叠的意思是填充图。但您提供的图表未填充。