javascript - Highcharts 中的径向饼图数据标签

标签 javascript jquery css highcharts

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

如果不是开箱即用的功能,也许有人有插件?

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

enter image description here

最佳答案

Highcharts 不提供在饼图中自动旋转数据标签的选项。您可以为数据标签旋转编写自定义函数。

这里是一个简单的例子,你可以怎么做:

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 值的总和。然后我计算所有饼图中间的 Angular 。然后我将数据标签旋转相同的 Angular 。

例子: http://jsfiddle.net/izothep/j7as86gh/6/

关于javascript - Highcharts 中的径向饼图数据标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676246/

相关文章:

javascript - react 。如何传递带有参数作为 prop 的函数?

javascript - 如何在 VueJS 中使类的 "virtual"getter 响应式

css - 使用 css 水平扩展内容的 div 上的垂直闪烁

html - Angular 2 - 动画显示/隐藏不适用于组件标签

javascript - 通用 javascript 调整大小函数

javascript - 字符串转换为 undefined/null/number/boolean

javascript - 一旦 div 滚动到尽头,页面就会滚动

javascript - jquery仅在一个函数完成后才启动一个函数

javascript - 添加 else if 语句以使用 javascript 在 html 中拉出页面

javascript - 迭代 BasicPrimitives OrgChart 项目