在系列具有正确原型的地方创建Highcharts的功能

罗杰

我正在尝试编写一个将高图添加到页面的函数,以及一个可以基于流API更新该图表数据的函数。我添加了setInterval以模拟流式API。

问题发生在第80行。我相信是因为我没有正确设置图表对象的序列数组。当我需要通过'addPoint'添加新数据时,原型就不存在了。我的AddChart函数缺少什么,该函数将系列连接到highcharts?

内容:http : //jsfiddle.net/puto3Lg0/2/

$(function () {
    $(document).ready(function () {
        var metrics = [];

        Highcharts.setOptions({
            global: {
                useUTC: false
            }
        });

        function AddChart(metric) {
            $("#divMain").append('<div id="' + metric.key + '" style="min-width: 310px; height: 200px; margin: 0 auto"></div>');
            $('#' + metric.key).highcharts({
                chart: {
                    type: 'spline',
                    animation: Highcharts.svg, // don't animate in old IE
                    marginRight: 10,

                },
                title: {
                    text: metric.Title
                },
                xAxis: {
                    type: 'datetime',
                    tickPixelInterval: 150
                },
                yAxis: {
                    title: {
                        text: 'Messages'
                    },
                    plotLines: [
                        {
                            value: 0,
                            width: 1,
                            color: '#808080'
                        }
                    ]
                },
                tooltip: {
                    formatter: function() {
                        return '<b>' + this.series.name + '</b><br/>' +
                            Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
                            Highcharts.numberFormat(this.y, 2);
                    }
                },
                legend: {
                    enabled: false
                },
                exporting: {
                    enabled: false
                },
                series: metric.series
        });
        };



        function ParseData(message) {

            var jsonObj = JSON.parse(message);

            $.each(jsonObj.Metrics, function(index, value) {
                var metricName = value.Metric.Name.replace(' ', '');
                if (metrics[metricName] == undefined) {

                    metrics[metricName] = {
                        "title": value.Metric.Name,
                        "key": metricName,
                        "series": [
                            {
                                name: value.Metric.Name,
                                data: []
                            }
                        ],
                    }

                    AddChart(metrics[metricName]);
                }

                metrics[metricName].series.addPoint([new Date().getTime(), parseInt(value.Metric.CurrentValue)], true, false);
            });
        };

        setInterval(function () {

            var m = "{\"Metrics\": [{\"Metric\":{\"Name\":\"Queue 01\",\"CurrentValue\":\"0\",\"TimeStamp\":\"\\\x2FDate(1415826323291)\\\x2F\"}},{\"Metric\":{\"Name\":\"Queue 02\",\"CurrentValue\":\"3\",\"TimeStamp\":\"\\\x2FDate(1415826323344)\\\x2F\"}},{\"Metric\":{\"Name\":\"Queue 03\",\"CurrentValue\":\"9\",\"TimeStamp\":\"\\\x2FDate(1415826323405)\\\x2F\"}}]}";

            ParseData(m);
        }, 1000);
    });
});
标记

首先,您已metrics声明为数组。应该是一个空对象:

var metrics = {};

其次,您创建的数据结构metrics[metricName].series不是Highcharts系列对象。这是您创建的对象,用于提供Highcharts数据。要获得真实的系列对象,您必须从图表中将其取回。

 // getting the chart from the DOM, then the first series...
 $("#"+metricName).highcharts().series[0].addPoint([new Date().getTime(), parseInt(value.Metric.CurrentValue)], true, false);

更新小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Js - 具有对象创建功能的原型继承

来自分类Dev

如何创建具有动物园功能的每月系列

来自分类Dev

创建具有特定原型的空对象

来自分类Dev

Clang,GCC接受的具有相同功能的不同原型

来自分类Dev

接口在Java中具有相同功能的原型?

来自分类Dev

检索具有多个系列的Highcharts的JSON数据?

来自分类Dev

如何通过JSON更新具有多个系列的Highcharts?

来自分类Dev

Highcharts固体压力计,具有多个系列

来自分类Dev

highcharts图例标记和具有不同大小的系列标记

来自分类Dev

具有返回功能的正确回调

来自分类Dev

Clojure,具有一系列功能的映射

来自分类Dev

rCharts和highcharts具有闪亮的情节无法正确更新

来自分类Dev

选择具有创建新功能的能力

来自分类Dev

从csv创建具有正确格式的对象

来自分类Dev

创建具有全部1个值的熊猫系列

来自分类Dev

从JSON文件创建具有多个系列的Highchart

来自分类Dev

具有共享原型的instanceof

来自分类Dev

JavaScript-具有正确“ this”上下文的原型上的链接属性

来自分类Dev

通过“ react-highcharts”对具有导出功能的Highcharts进行反应

来自分类Dev

Highcharts在具有多个系列的图表之间共享工具提示,并且共享工具提示

来自分类Dev

升压asio插座是否具有正确的RAII清理功能

来自分类Dev

Elixir:具有正确导入功能的生成模块

来自分类Dev

从文件创建具有所有功能的字典

来自分类Dev

创建具有所有功能的wordpress文件

来自分类Dev

根据JSON为HighCharts创建系列数据

来自分类Dev

Highcharts为柱形图创建系列

来自分类Dev

Highcharts:使用 JSON 数据创建多个系列

来自分类Dev

在每个人都具有写权限的地方创建一个Samba共享

来自分类Dev

创建具有图像识别功能的独立项目

Related 相关文章

  1. 1

    Js - 具有对象创建功能的原型继承

  2. 2

    如何创建具有动物园功能的每月系列

  3. 3

    创建具有特定原型的空对象

  4. 4

    Clang,GCC接受的具有相同功能的不同原型

  5. 5

    接口在Java中具有相同功能的原型?

  6. 6

    检索具有多个系列的Highcharts的JSON数据?

  7. 7

    如何通过JSON更新具有多个系列的Highcharts?

  8. 8

    Highcharts固体压力计,具有多个系列

  9. 9

    highcharts图例标记和具有不同大小的系列标记

  10. 10

    具有返回功能的正确回调

  11. 11

    Clojure,具有一系列功能的映射

  12. 12

    rCharts和highcharts具有闪亮的情节无法正确更新

  13. 13

    选择具有创建新功能的能力

  14. 14

    从csv创建具有正确格式的对象

  15. 15

    创建具有全部1个值的熊猫系列

  16. 16

    从JSON文件创建具有多个系列的Highchart

  17. 17

    具有共享原型的instanceof

  18. 18

    JavaScript-具有正确“ this”上下文的原型上的链接属性

  19. 19

    通过“ react-highcharts”对具有导出功能的Highcharts进行反应

  20. 20

    Highcharts在具有多个系列的图表之间共享工具提示,并且共享工具提示

  21. 21

    升压asio插座是否具有正确的RAII清理功能

  22. 22

    Elixir:具有正确导入功能的生成模块

  23. 23

    从文件创建具有所有功能的字典

  24. 24

    创建具有所有功能的wordpress文件

  25. 25

    根据JSON为HighCharts创建系列数据

  26. 26

    Highcharts为柱形图创建系列

  27. 27

    Highcharts:使用 JSON 数据创建多个系列

  28. 28

    在每个人都具有写权限的地方创建一个Samba共享

  29. 29

    创建具有图像识别功能的独立项目

热门标签

归档