Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在HighCharts中使用外部csv文件绘制饼图_Javascript_Csv_Highcharts - Fatal编程技术网

Javascript 无法在HighCharts中使用外部csv文件绘制饼图

Javascript 无法在HighCharts中使用外部csv文件绘制饼图,javascript,csv,highcharts,Javascript,Csv,Highcharts,我试着在HIGHCHARTS中用外部csv绘制一个饼图,但它没有正确显示,而是显示了一个只有名称的切片 我已经为此创建了一个fiddle,fiddle适用于其他图表选项,如“条”、“线”等,但对“饼”选项无效 以下是在fiddle中设置的图形选项: var options = { chart: { renderTo: 'container', type: 'pie' },

我试着在HIGHCHARTS中用外部csv绘制一个饼图,但它没有正确显示,而是显示了一个只有名称的切片

我已经为此创建了一个fiddle,fiddle适用于其他图表选项,如“条”、“线”等,但对“饼”选项无效

以下是在fiddle中设置的图形选项:

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个饼图。这是你的目标,还是单一图表?嗨,塞巴斯蒂安,我要求所有这些值都在一个饼图中。可能吗?如果不可能,那么我可以有一个单一系列的饼图,这是小提琴。我怎么能在这个饼图上贴标签呢。。谢谢你想要一个饼图,但是你的数据没有意义。您的数据是按年份划分的向量,饼图通常只表示一个变量。那么,你想怎么做,按年还是按年?比如说,按年计算,你会计算吗?一般?中位数?嗨,马克,应该是总和