我发现在读取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
您应该检查columns数组的结构并循环遍历第一个内部数组以重新计算时间戳:
data: {
csv: document.getElementById('csv').innerHTML,
parsed: function(columns) {
columns[0].forEach(function(column, i) {
columns[0][i] *= 1000;
});
}
},
我没想到数据的调用方式会有所不同。 (我使用了一个例子,我发现从那里开始,我认为日期格式只用于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