Javascript 无法在HighCharts中使用外部csv文件绘制饼图
我试着在HIGHCHARTS中用外部csv绘制一个饼图,但它没有正确显示,而是显示了一个只有名称的切片 我已经为此创建了一个fiddle,fiddle适用于其他图表选项,如“条”、“线”等,但对“饼”选项无效 以下是在fiddle中设置的图形选项:Javascript 无法在HighCharts中使用外部csv文件绘制饼图,javascript,csv,highcharts,Javascript,Csv,Highcharts,我试着在HIGHCHARTS中用外部csv绘制一个饼图,但它没有正确显示,而是显示了一个只有名称的切片 我已经为此创建了一个fiddle,fiddle适用于其他图表选项,如“条”、“线”等,但对“饼”选项无效 以下是在fiddle中设置的图形选项: var options = { chart: { renderTo: 'container', type: 'pie' },
var options = {
chart: {
renderTo: 'container',
type: 'pie'
},
title: {
text: 'Vechicle Sales'
},
xAxis: {
categories: []
},
yAxis: {
title: {
text: 'Sales'
}
},
series: []
};
请让我知道这背后的原因以及csv文件的正确处理方法
谢谢您当前的代码将每年作为一个系列,每种vechile类型都作为xaxis类别。这对于饼图是不合适的,因为它需要是一系列数据点。因此,我们需要切换CSV解析:
var seriesData = []; // this will be an array of point objects
var lines = csvData.split('\n');
$.each(lines, function(lineNo, line) {
var items = line.split(',');
if (lineNo === 0) { // first line contains point names
$.each(items, function(itemNo, item) {
//skip first item of first line
if (itemNo > 0) {
seriesData.push({
name: item,
y: 0
}); // create a data point object
}
});
} else {
$.each(items, function(itemNo, item) {
if (itemNo > 0) {
// find our data point and sum the values
seriesData[itemNo - 1]['y'] += parseFloat(item);
}
});
}
});
最后,将此数据添加为单个系列:
options.series.push({data: seriesData, name: 'Vehicle'});
工作。您有3个系列,即3个饼图。这是你的目标,还是单一图表?嗨,塞巴斯蒂安,我要求所有这些值都在一个饼图中。可能吗?如果不可能,那么我可以有一个单一系列的饼图,这是小提琴。我怎么能在这个饼图上贴标签呢。。谢谢你想要一个饼图,但是你的数据没有意义。您的数据是按年份划分的向量,饼图通常只表示一个变量。那么,你想怎么做,按年还是按年?比如说,按年计算,你会计算吗?一般?中位数?嗨,马克,应该是总和