我在csv文件中有数据的音调,当我尝试从数据创建图表时,我的javascript不会读取每行的最后一个元素。我用另一个csv文件尝试了我的javascript和更少的数据,它工作正常。我知道在Java中,你有时需要在使用扫描仪时添加system.out.println(“\ n”),因为它有时会跳过一行,这样你就无法在控制台上写入输入。我的csv文件问题也是这样吗?
这是我的javascript:
function f() {
$(document).ready(function () {
var arr1 = new Array();
var arr2 = new Array();
var arr3 = new Array();
var dat = {};
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'bar',
zoomType: 'xy',
},
title: {
text: 'Gene'
},
subtitle: {
text: name
},
xAxis: {
categories: []
},
legend: {
enabled: false
},
yAxis: {
title: {
text: 'Position'
},
minTickInterval: 10 ,
labels: {
enabled: false
}
plotOptions: {
series: {
stacking: 'normal',
}
},
tooltip: {
formatter: function() {
return 'Sample: <b>' + this.x + '</b><br/><br/>' +
'<n>Position: <b>' + this.series.name + '</b><br/><br/>'+
'<n>SNP ID: <b>' + arr2[arr1.indexOf(this.series.name)] + '</b><br/><br/>';
}
},
series: []
};
$.get('example.asp', 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) {
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) {
var data = {};
var hash = {};
if (itemNo == 1) {
series.name = item;
arr1.push(item);
}
else if (itemNo == 0) {
arr2.push(item);
}
else //if //(itemNo < items.length-1){
{
arr3.push(item);
hash[item] = 1;
data.y = hash[item];
if (item === '15') {
data.color = 'grey';
}
else if (item === '3') {
data.color = 'blue';
}
else if (item === '16') {
data.color = 'white';
}
else {
data.color = 'red';
}
series.data.push(data);
// dat.push(series);
}
});
options.series.push(series);
// dat.push(series);
}
});
// Create the chart
var chart = new Highcharts.Chart(options);
});
});
}
以下是我的csv文件的样子: link
答案 0 :(得分:0)
我试图在jsfiddle
上重现问题,但一切正常,请参阅:http://jsfiddle.net/ZM6A5/
对于每一行你有x个元素,series.data包含x - 2个元素,这对你的文件来说非常好,每行开头都是Janet,d, ...
- 所以两个第一个元素不是数据的一部分
你能指出我的问题在哪里,或者在jsFiddle上重新创建吗?