首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Rickshaw图动态添加数据点

向Rickshaw图动态添加数据点
EN

Stack Overflow用户
提问于 2013-08-09 04:10:44
回答 1查看 4.3K关注 0票数 2

所以我正在使用人力车图形库,我想知道如何动态地向图中添加点。

我有一个图实例化如下:

代码语言:javascript
复制
        @seriesData = [ [], [], [] ]
        random = new Rickshaw.Fixtures.RandomData(150)


        for (var i = 0; i < 50; i++) {
            random.addData(self.seriesData)
        }


        @graph = new Rickshaw.Graph(
            element: document.getElementById("chart")
            width: 550
            height: 300
            renderer: 'area'
            series: [
                {
                    color: "#c05020"
                    data: self.seriesData[0]
                    name: 'One'
                }, {
                    color: "#30c020"
                    data: self.seriesData[1]
                    name: 'Two'
                }, {
                    color: "#2791d7"
                    data: self.seriesData[2]
                    name: 'Three'
                }
            ]
        )

        @graph.render()

        hoverDetail = new Rickshaw.Graph.HoverDetail(
            graph: self.graph
        )

        legend = new Rickshaw.Graph.Legend(
            graph: self.graph
            element: document.getElementById('legend')

        )

        shelving = new Rickshaw.Graph.Behavior.Series.Toggle(
            graph: self.graph
            legend: legend
        )

        axes = new Rickshaw.Graph.Axis.Time(
            graph: self.graph
        )
        axes.render()

我在socket.io上得到了这样的数据:

代码语言:javascript
复制
    app.on('data',
        (one, two, three) =>
            // Dynamically add data points to graph
    )

我想知道如何把这三个点附加到图表上。我找不到这个图书馆的好文件。我知道它是建立在d3.js之上的,但我不知道如何将这些方法合并到我的图表中。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 21:20:35

我设想有两种情况可以解决你的问题:

  • 使用流数据的固定窗口系列
  • 利用javascript中的数组是通过引用传递的事实。这里提供了一个演示

代码语言:javascript
复制
var data = [
        {
            data: [ { x: 0, y: 120 }, { x: 1, y: 890 }, { x: 2, y: 38 }, { x: 3, y: 70 }, { x: 4, y: 32 } ],
            color: "#c05020"
        }, {
            data: [ { x: 0, y: 80 }, { x: 1, y: 200 }, { x: 2, y: 100 }, { x: 3, y: 520 }, { x: 4, y: 133 } ],
            color: "#30c020"
        }
];


var graph = new Rickshaw.Graph( {
    element: document.getElementById("chart"),
    renderer: 'line',
    height: 300,
    width: 800,
    series: data
} );

var y_ticks = new Rickshaw.Graph.Axis.Y( {
    graph: graph,
    orientation: 'left',
    tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
    element: document.getElementById('y_axis'),
} );

graph.render();


$('button#add').click(function() {
    data.push({
            data: [ { x: 0, y: 200 }, { x: 1, y: 390 }, { x: 2, y: 1000 }, { x: 3, y: 200 }, { x: 4, y: 230 } ],
            color: "#6060c0"
    });
    graph.update();
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18139911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档