Highcharts在绘制为不包括在ms的纪元时间之前更改csv文件中的值,因此必须乘以1000

问题描述 投票:0回答:2

我发现在读取highcharts中的csv文件后使用回调函数的posibillity。但是我的知识不足以获得每行的第一个值并乘以1000.我从代码中找到了一个例子:(https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/data/parsed/

data: {
        csv: document.getElementById('csv').innerHTML,
        parsed: function (columns) {
            // We want to keep the values since 1950 only
            $.each(columns, function () {
                // Keep the first item which is the series name, then remove the following 70
                this.splice(1, 70);
            });
        }
    },

我必须把我的代码而不是“this.splice(1,70)”,但不知道如何。

我的数据如下:

Date,Temp,Press
1552417882, 25.54,980.23
1552417942, 25.60,980.19
1552418002, 25.60,980.17
1552418062, 25.58,980.14
1552418122, 25.53,980.12
1552418183, 25.48,980.06
1552418243, 25.48,980.06
1552418303, 25.47,980.04
1552418363, 25.47,980.02

并且第一行(描述)应该保持不变。

最好的问候Albert

csv highcharts
2个回答
0
投票

您应该检查columns数组的结构并循环遍历第一个内部数组以重新计算时间戳:

data: {
    csv: document.getElementById('csv').innerHTML,
    parsed: function(columns) {
        columns[0].forEach(function(column, i) {
            columns[0][i] *= 1000;
        });
    }
},

现场演示:https://jsfiddle.net/BlackLabel/zve9tsa8/

API参考:https://api.highcharts.com/highcharts/data.parsed


0
投票

我没想到数据的调用方式会有所不同。 (我使用了一个例子,我发现从那里开始,我认为日期格式只用于tiptools但我从未删除过)。知道为什么它来自文件而不是HTML页面不起作用。如果来自文件,也许第一行也会改变。

var dataFilePath = "data/"+getDataFilename(query);

$(function () {
  // Register a parser for the American date format used by Google
    Highcharts.Data.prototype.dateFormats['m/d/Y'] = {
        regex: '^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{2})$',
        parser: function (match) {
            return Date.UTC(+('20' + match[3]), match[1] - 1, +match[2]);
        }
    };

    // Get the CSV and create the chart
    $.get(dataFilePath, function (csv) {

        $('#container').highcharts({

            data: {
                csv: csv,
            parsed: function(columns) {
            columns[0].forEach(function(columns, i) {
                columns[0][i] *= 1000;
            });
            },

            title: {
                text: 'Wintergartentemperatur'
            },

最好的问候Albert

© www.soinside.com 2019 - 2024. All rights reserved.