[英]I'm trying to create a bar graph with Highcharts JS, but the bars won't draw on the graph?
这是我的编码,它适用于具有几行和几列的小型csv文件,但不适用于具有很多行和列的文件。
这是我要为其创建图形的文件的一部分:
Date Time Tcoll Tstor TglyHXin TglyHXout TH2OHXout Tcold Thot 01/01/2013 0:00:54 103.34 103.32 26.94 23.06 32.31 13.81 40.06 46.06 01/01/2013 0:01:55 103.29 103.3 26.94 23.06 32.31 13.81 40.06 46 01/01/2013 0:02:55 103.29 103.33 26.95 23.06 32.31 13.81 40.06 46 01/01/2013 0:03:55 103.29 103.03 26.94 23.06 32.31 13.81 40.06 46.05 01/01/2013 0:04:55 103.34 103.27 26.94 23.06 32.31 13.81 40.06 46.02 01/01/2013 0:05:55 103.39 103.33 26.94 23.06 32.31 13.81 40.04 45.99 01/01/2013 0:06:55 103.3 103.01 26.94 23.06 32.31 13.81 40.05 45.94 01/01/2013 0:07:55 103.42 103.17 26.94 23.06 32.31 13.81 40.06 45.89 01/01/2013 0:08:55 103.37 103.16 26.94 23.06 32.31 13.8 40.03 45.88 01/01/2013 0:09:55 103.34 103.28 26.94 23.06 32.31 13.8 40.01 45.88
这是代码:
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'column'
},
title: {
text: 'January Analysis'
},
xAxis: {
categories: []
},
yAxis: {
title: {
text: 'Temperature'
}
},
series: []
};
$.get('WEL_log_2013_01.csv', function(data) {
// Split the lines
var lines = data.split('\n');
// Iterate over the lines and add categories or series
$.each(lines, function(lineNo, line) {
var items = line.split(',');
// header line containes categories
if (lineNo == 0) {
$.each(items, function(itemNo, item) {
if (itemNo > 0) options.xAxis.categories.push(item);
});
}
// the rest of the lines contain data with their name in the first position
else {
var series = {
data: []
};
$.each(items, function(itemNo, item) {
if (itemNo == 0) {
series.name = item;
} else {
series.data.push(parseFloat(item));
}
});
options.series.push(series);
}
});
// Create the chart
var chart = new Highcharts.Chart(options);
});
</script>
希望这次我对我的问题很具体,不会减分,不会被关闭。
谢谢
问题是您的CSV解析器不正确,您需要生成csv哪些项目用逗号分隔,或修改解析器。 因为ie在这一行:
$.each(lines, function(lineNo, line) {
var items = line.split(',');
您尝试用逗号提取行中的所有项目,但不要这样做。 您需要将其替换为“空白”:
var items = line.split(' ');
就像您在CSV中一样。 此外,您尝试将“ Date Time Tcoll Tstor TglyHXin TglyHXout TH2OHXout Tcold Tho”这些值推入类别,但是我假设您希望第一列中有日期。 结果应该是:
$.each(lines, function(lineNo, line) {
var items = line.split(' ');
// header line containes categories
if (lineNo > 0) {
var series = {
data: []
};
options.xAxis.categories.push(item[0]);
series.data.push(parseFloat(item[2]));
options.series.push(series);
}
});
在此series.data.push(parseFloat(item[2]))
行中,您定义哪一列应为y值。 例如,我选择第三列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.