Javascript Highcharts 3D饼图颜色渲染

Javascript Highcharts 3D饼图颜色渲染,javascript,asp.net-mvc,3d,highcharts,Javascript,Asp.net Mvc,3d,Highcharts,在使用highcharts生成3D饼图时,我遇到了一个奇怪的问题。不同切片上的颜色最初不加载,仅在鼠标悬停后显示 代码段: module.pieChart = function (divid, title, subTitle, seriesData) { //seriesData is in form of json window[divid] = new Highcharts.Chart({ chart: { rende

在使用highcharts生成3D饼图时,我遇到了一个奇怪的问题。不同切片上的颜色最初不加载,仅在鼠标悬停后显示

代码段:

module.pieChart = function (divid, title, subTitle, seriesData) {
 //seriesData is in form of json
        window[divid] = new Highcharts.Chart({
            chart: {
                renderTo: divid,
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false
            },
            credits: {
                enabled: false
            },
            title: {
                text: title
            },
            subtitle: {
                text: subTitle
            },
            tooltip: {
                pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
            }, legend: {
                enabled: true
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true,
                        color: '#000000',
                        connectorColor: '#000000',
                        formatter: function () {
                            return '<b>' + this.point.name + '</b>: ' + this.percentage.toFixed(2) + ' %';
                        }
                    },
                    showInLegend: true
                }
            },
            series: [{
                type: 'pie',
                name: title,
                data: seriesData
            }]
        }, NodataMessage);
    };
module.pieChart=函数(divid、title、subTitle、seriesData){
//seriesData是json格式的
窗口[divid]=新的Highcharts.Chart({
图表:{
renderTo:divid,
plotBackgroundColor:null,
plotBorderWidth:null,
plotShadow:false
},
学分:{
已启用:false
},
标题:{
正文:标题
},
副标题:{
正文:副标题
},
工具提示:{
pointFormat:“{series.name}:{point.percentage:.1f}%”
},图例:{
已启用:true
},
打印选项:{
馅饼:{
allowPointSelect:true,
光标:“指针”,
数据标签:{
启用:对,
颜色:'#000000',
连接器颜色:'#000000',
格式化程序:函数(){
返回“+this.point.name+”:“+this.percentage.toFixed(2)+%”;
}
},
showInLegend:对
}
},
系列:[{
键入“pie”,
姓名:职务,,
数据:系列数据
}]
},NodataMessage);
};
如果有人对此有任何建议或解决方案


编辑


它是关于
Highcharts.getOptions().colors
。此函数生成10种颜色,第10种颜色后,颜色列表为空。你试着像这样推送颜色:

// there is no color for i > 9
color:data[i].color;
Highcharts.getOptions().colors
输出为:
[“7cb5ec”、“434348”、“90ed7d”、“f7a35c”、“8085e9”、“f15c80”、“e4d354”、“8085e8”、“8d4653”、“E8E1”

因此,您应该从选项中删除它,或者手动定义它

和工作示例:


问题在于@AliRıza Adıyahşi所说的颜色数组的长度。简单的解决方案是采用颜色数组的宽度,然后使用
colors[i]
而不是
colors[i%colors.length]
。见现场演示:


或者只是不设置颜色,让Highcharts为您设置颜色:

请创建一个JSFIDLE示例。如果我们看不到您的数据示例,我们无法找到问题。可能您的数据不是预期的结构。正在运行示例…很抱歉,我无法为其生成fiddle。因为数据来自服务器。它与数据无关..正在生成饼图..但悬停从浏览器控制台获取数据并创建JSFIDLE示例后,将显示不同切片上的颜色。在这种形式下,您不会得到任何答案,您使用的是standart选项,您不应该得到任何错误,因此存在一个问题:数据。好的。让我记录数据并使用它。