Fra*_*dor 1 javascript css jquery highcharts
如何将数据标签置于饼图(内部)的楔形中心并对齐饼图半径而不是水平或垂直.这是我所追求的形象.
也许有人有一个插件,如果它不是一个开箱即用的功能?
甚至一些实验代码也会有用.
Highcharts不提供饼图中自动旋转数据标签的选项.您可以为dataLabels旋转编写自定义函数.
这是一个简单的例子,你可以这样做:
var allY, angle1, angle2, angle3,
rotate = function () {
$.each(options.series, function (i, p) {
angle1 = 0;
angle2 = 0;
angle3 = 0;
allY = 0;
$.each(p.data, function (i, p) {
allY += p.y;
});
$.each(p.data, function (i, p) {
angle2 = angle1 + p.y * 360 / (allY);
angle3 = angle2 - p.y * 360 / (2 * allY);
p.dataLabels.rotation = -90 + angle3;
angle1 = angle2;
});
});
};
Run Code Online (Sandbox Code Playgroud)
首先,我计算所有Y值的总和.然后我计算所有饼图中间的角度.然后我以相同的角度旋转数据标签.
例如:http: //jsfiddle.net/izothep/j7as86gh/6/