2014-11-07 1 views
2

Я попытался нарисовать круговую диаграмму с внешним csv в HIGHCHARTS, но она не подходит должным образом, а вместо ярлыков называет только срез.Не удалось нарисовать круговую диаграмму с внешним файлом csv в HighCharts

Я создал скрипку для этого pie fiddle, скрипка работает для других параметров диаграммы, таких как «бар», «линия» и т. Д., Но не подходит для «пирога».

ниже вариант графика, который установлен в скрипкой:

var options = { 
      chart: { 
       renderTo: 'container', 
       type: 'pie' 
      }, 
      title: { 
       text: 'Vechicle Sales'     
      }, 

      xAxis: { 
       categories: [] 
      }, 
      yAxis: { 
       title: { 
        text: 'Sales' 
       } 
      }, 
      series: [] 
     }; 

Пожалуйста, дайте мне знать, что будет причиной этого, и что было бы правильным для обработки CSV-файла.

Благодаря

+2

У вас есть 3 серии, что означает 3 круговые диаграммы. Это ваша цель или единый график? –

+0

Привет, Себастьян, мне нужны все эти значения в одной круговой диаграмме. Возможно, – Bhupendra

+0

Если это невозможно, тогда у меня может быть пирог с одиночной серией, вот скрипка http://jsfiddle.net/BHUPENDRA1011/dsbvpkt0/6/для этого. Вместо ломтика, как я могу на нем наклеить. Спасибо – Bhupendra

ответ

1

Ваш текущий код занимает каждый год в серии с каждым типом 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'}); 

Работа example.

+0

спасибо Отметить, что оно решило мою проблему – Bhupendra

Смежные вопросы