无法显示带有setextremes的图表图表

时间:2019-05-23 01:36:58

标签: flask highcharts

我正在从天气传感器(每5分钟)中收集信息,经过几天和几个月的时间,记录数量巨大,并且使图表永久存在。...它正在工作,但是延迟太高。 ..因此,我不想一次显示所有值,而是要根据选择的日期范围制作图形,并相应地获取数据。

我正在使用python,sqlite3和Flask并尝试从Highcharts复制此示例

https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/stock/demo/lazy-loading/

在示例中,他们使用php,这是代码

https://github.com/highcharts/highcharts/blob/master/samples/data/from-sql.php

这是我在html页面中的setextreme函数

function setExtremes(e)
// detect zoom button
{
if(typeof(e.rangeSelectorButton)!== 'undefined')
{
    if (e.rangeSelectorButton.type=='all')
    {
        var chart = Highcharts.charts[0];
        chart.showLoading('Loading data from server...');
        $.getJSON('http://192.168.0.74:5000/rango?start=' + Math.round(e.min) +'&end=' + Math.round(e.max) + '&callback=?', function (data) {



    // Arrange data

    alert('I am in')        
    for (i = 0; i< data.length; i++)
    {
        processed_json_temperatura.push(data[i][0], data[i][1]);
        processed_json_presion.push(data[i][0], data[i][2]);
        processed_json_humedad.push(data[i][0], data[i][3]);
        processed_json_lluvia.push(data[i][0], data[i][4]);
        processed_json_horas_frio.push(data[i][0], data[i][5]);
    }

    temperatura_matriz =  listToMatrix( processed_json_temperatura,2);
    presion_matriz = listToMatrix( processed_json_presion,2);
    humedad_matriz = listToMatrix( processed_json_humedad,2);
    lluvia_matriz = listToMatrix( processed_json_lluvia,2);
    horas_frio_matriz = listToMatrix(processed_json_horas_frio,2);

//update graphs with new values

    chart.series[0].setData(temperatura_matriz);
    chart.series[1].setData(presion_matriz);
    chart.series[2].setData(humedad_matriz);
    chart.series[3].setData(lluvia_matriz);
    chart.series[4].setData(horas_frio_matriz);
    chart.hideLoading();
        });
    }
}
}

在服务器端,这是我的带有烧瓶的python代码

@app.route("/rango")
def rango():
start=request.args.get('start')
end=request.args.get('end')
range = int(end)/1000 - int(start)/1000


# find the right table
# two days range loads minute data
if (range < 2 * 24 * 3600 * 1000):

connection = sqlite3.connect("/var/www/nueva_estacion.db")
cursor = connection.cursor()
cursor.execute("select (julianday(timestamp)-2440587.5)*86400000, round(temp1,2) as temp1, presion, round(humedad,2) as humedad, lluvia,aux1 from raw_all_sensors where datetime(timestamp) >=datetime('now', '-6 Day')")
results = cursor.fetchall()
print json.dumps(results)
return json.dumps(results)

当我单击缩放按钮时(实际上在highstock上),我确实看到了消息“正在从服务器加载数据...”,但是从不显示新图形,也从不收到“我在”控制台消息。

在服务器端监视消息传递时,我确实得到了

192.168.0.122--[22 / May / 2019 19:47:22]“ GET / rango?start = 1558050049000&end = 1558551372000&callback = jQuery18307335687220269529_1558565228146&_ = 1558565238543 HTTP / 1.1” 200-

哪里是清楚的开始日期,什么是结束日期,然后我就不理解回调和随后的数字。

以防万一,这是来自服务器的信息 [1558546562999.989、17.82、1021、76.15、0、1]

有人可以在这里带些光吗?

0 个答案:

没有答案