Javascript Highcharts 3D饼图颜色渲染
在使用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
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选项,您不应该得到任何错误,因此存在一个问题:数据。好的。让我记录数据并使用它。