从highcharts中的数组绘制饼状图

draw pie chart from arrays in highcharts

本文关键字:绘制 数组 highcharts      更新时间:2023-09-26

我想合并两个数组并在图表上显示它们,但不能这样做。请指出绘制这种图表的正确语法。如果有人能提供一个简单的链接,这将是更好的为我的理解。谢谢。

$(function () {
    var name = ['chrome','firefox','opera'];
    var data = [11.22,81.54,6];
    var final = [name,data];
    $('#container').highcharts({
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false,
            type: 'pie'
        },
        title: {
            text: 'Browser market shares January, 2015 to May, 2015'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        },
        series: [{
            name: "Results",
            colorByPoint: true,
            data:JSON.parse(final)
        }]
    });
});

不必合并数组。你必须用对象列表构建新的数组。这些对象应该具有基于您提供的数组的结构。每个对象的适当"名称"应从"名称"数组中获取其值。适当的"y",反过来应该从"数据"数组中获得值。例如:

var final = [
   {
       name: 'chrome',
       y: '11,22'
   },
   {
       name: 'firefox',
       y: '81.5'
   },
   {
       name: 'opera',
       y: '6'
   }   
]

你可以这样得到它:

var name = ['chrome','firefox','opera'];
var data = [11.22,81.54,6];
var final = [];
for(var i=0; i < name.length; i++) {
    final.push({
        name: name[i],
        y: data[i]           
    });        
}  

这里是小提琴:http://jsfiddle.net/ujahc83h/2/