Javascript Highcharts中的径向饼图数据标签

Javascript Highcharts中的径向饼图数据标签,javascript,jquery,css,highcharts,Javascript,Jquery,Css,Highcharts,如何将数据标签居中放置在饼图的楔形部分(内部),并与饼图半径对齐,而不是水平或垂直对齐。这是我所追求的形象 如果不是现成的功能,可能有人有一个插件 甚至一些实验代码也会有用 Highcharts不提供饼图中自动旋转数据标签的选项。您可以为dataLabels旋转编写自定义函数 下面是一个简单的示例,您可以这样做: var allY, angle1, angle2, angle3, rotate = function () { $.each(options.series,

如何将数据标签居中放置在饼图的楔形部分(内部),并与饼图半径对齐,而不是水平或垂直对齐。这是我所追求的形象

如果不是现成的功能,可能有人有一个插件

甚至一些实验代码也会有用


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;
            });
        });
    };
首先,我计算所有Y值的总和。然后我计算所有饼片中间的角度。然后我以相同的角度旋转数据标签

例如:

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;
            });
        });
    };
首先,我计算所有Y值的总和。然后我计算所有饼片中间的角度。然后我以相同的角度旋转数据标签

例如:

太好了。这给了我一些可以合作的东西。谢谢你,格泽戈兹!太好了。这给了我一些可以合作的东西。谢谢你,格泽戈兹。我想要类似的东西,你能帮忙吗。我想要类似的东西,你能帮忙吗?