【问题标题】:Highcharts dynamic data from an Api来自 Api 的 Highcharts 动态数据
【发布时间】:2017-08-07 12:52:40
【问题描述】:

我想创建一个从 Api 读取数据的图表。为此,我有这个小提琴http://jsfiddle.net/68oe1oLf/69/

注意:https://jsfiddle.net/68oe1oLf/69/会导致混合内容错误,无法从api加载数据

这是javascript代码

$(document).ready(function () {
$.get( "http://firmbridgecapital.com/live.php", function( dt ) {
     localStorage.setItem("data", dt);
     });

window.setInterval(function(){
  $.get( "http://firmbridgecapital.com/live.php", function( dt ) {
     localStorage.setItem("data", dt);
     });
}, 5000);

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

    Highcharts.chart('container', {
        chart: {
            type: 'spline',
            animation: Highcharts.svg, // don't animate in old IE
            marginRight: 10,
            events: {
                load: function () {

                    // set up the updating of the chart each second
                    var series = this.series[0];
                    setInterval(function () {
                        var x = (new Date()).getTime(), // current time
                            y = parseInt(localStorage.getItem("data"));
                        series.addPoint([x, y], true, true);
                    }, 5000);
                }
            }
        },
        title: {
            text: 'Live random data'
        },
        xAxis: {
            type: 'datetime',
            tickPixelInterval: 150
        },
        yAxis: {
          max: 3,
            title: {
                text: 'Value'
            },
            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: [{
            name: 'Random data',
            data: (function () {
                // generate an array of random data
                var data = [],
                    time = (new Date()).getTime(),
                    i;

                for (i = -150; i <= 0; i += 25) {
                    data.push({
                        x: time,
                        y: parseInt(localStorage.getItem("data"))
                    });
                }
                return data;
            }())
        }]
    });
});

我从这个文档示例http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/dynamic-update/借用了这个想法

我的图表始终以值 1 为基础,并且不显示 y 轴上的变化值。我该如何解决这个问题?。

【问题讨论】:

    标签: highcharts


    【解决方案1】:

    您引用的值,即live php page,似乎是 1.x 并且增长非常缓慢。 (我在看的时候是 1.7)。

    在您的解析中,您执行以下操作:

    y = parseInt(localStorage.getItem("data"));
    

    由于该值为1.7,并且您尝试将其解析为integerparseInt,它会被转换为1。使用parseFloat 会给你一个缓慢增加的图表。

    【讨论】:

    • 使用 parsefloat 时,我得到一个带两位小数的值。我如何才能从 1.178971.17897 等 api 获得的 highcharts 上获得全部价值
    • 我已经编辑了小数位 Highcharts.numberFormat(this.y, 5);但变化在 y 轴上很明显。
    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2021-07-25
    • 2014-12-02
    相关资源
    最近更新 更多