答案 0 :(得分:6)
Highcharts不提供饼图中自动旋转数据标签的选项。您可以为dataLabels rotation编写自定义函数。
以下是如何做到这一点的简单示例:
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;
});
});
};
首先,我计算所有Y值的总和。然后我计算所有饼图中间的角度。然后我以相同的角度旋转数据标签。