我在这里有一张Highcharts饼图:http://jsfiddle.net/6PbbR/52/
$(function () {
var chart;
$(document).ready(function() {
// Radialize the colors
Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {
return {
radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
stops: [
[0, color]
]
};
});
// Build the chart
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
shadow: true,
},
tooltip: {
enabled: false
},
title: {
text: ""
},
plotOptions: {
pie: {
allowPointSelect: true,
size:'68%',
cursor: 'pointer',
shadow: true,
dataLabels: {
enabled: true,
distance: -40,
style: {
width: '100px'
},
color: '#fff',
connectorColor: '#000000',
formatter: function() {
return '<b style="font-family:arial;font-size:10px;font-weight:bold">'+ this.point.name +'</b> ';
}
}
}
},
series: [{
type: 'pie',
name: 'Income Investments',
data: [
['FLOATING RATE FUNDS', 16.667],
{
name: 'Corporate Capital Trust',
y: 16.667,
sliced: true,
selected: true
},
['BONDS', 16.667],
['ANNUITIES', 16.667],
['REITs', 16.667],
['CDs', 16.667]
]
}],
colors: [
'#83a3c6',
'#98012e',
'#19699b',
'#ae9e8e',
'#5283b0',
'#958370'
],
});
});
});
两个问题:
1)我对如何在plotOptions中插入内联样式感到满意{pie {formatter。哪个更好的地方使用API,而不是强制内联样式?
2)我想更改红色楔形的字体系列(并可能调整其定位/边距)。这样做的最佳方式是什么?
编辑:理想情况下,我可以完成我的需求,而无需超出上述功能。是否可以使用API将样式附加到一个数据点?
答案 0 :(得分:1)
这是一个简单的html,因此您可以添加class
或id
,然后使用css
设置样式。
JS
formatter: function() {
return '<b id="myTooltipId">'+ this.point.name +'</b> ';
}
CSS
#myTooltipId {
font-family: arial;
font-size: 10px;
font-weight:bold
}
<强>更新强>:
在内部格式化程序中,您可以使用this
获取切片属性
所以你只需要检查切片是否是你想要的切片。
formatter: function() {
// key is the slice name
if (this.key == 'CDs') {
return '<b id="myTooltipId">'+ this.point.name +'</b> ';
} else {
return this.value;
}
}