Angularjs 如何在piechart highchart中显示前三名数据标签

Angularjs 如何在piechart highchart中显示前三名数据标签,angularjs,web,highcharts,Angularjs,Web,Highcharts,我有一个要求,我希望我的饼图只显示前3个数据标签,而不是显示所有数据并填充空间。是否有任何内置的highchart api可用,或实现此目的的最佳解决方案 这是我的JSFIDLE: 在发布此问题之前,我已经搜索了足够多并试图找到解决方案,但没有找到任何帮助。您可以使用dataLabels.formatter函数仅返回特定的dataLabels(对于其值足够大的点) 我对y值进行排序,然后检查我的数据标签点y值是否大于或等于系列的第三个y值。如果它更大或相等,则返回值,否则不返回任何内容 在这里

我有一个要求,我希望我的饼图只显示前3个数据标签,而不是显示所有数据并填充空间。是否有任何内置的highchart api可用,或实现此目的的最佳解决方案

这是我的JSFIDLE:


在发布此问题之前,我已经搜索了足够多并试图找到解决方案,但没有找到任何帮助。

您可以使用dataLabels.formatter函数仅返回特定的dataLabels(对于其值足够大的点)

我对y值进行排序,然后检查我的数据标签点y值是否大于或等于系列的第三个y值。如果它更大或相等,则返回值,否则不返回任何内容


在这里,您可以找到它的工作原理示例:

您可以使用dataLabels.formatter函数仅返回特定的dataLabels(对于其值足够大的点)

我对y值进行排序,然后检查我的数据标签点y值是否大于或等于系列的第三个y值。如果它更大或相等,则返回值,否则不返回任何内容


在这里,您可以找到一个它如何工作的示例:

您可以使用dataLabels.formatter函数:Thank@GrzegorzBlachliński它似乎可以工作,但在您的小提琴中,它显示了数据标签中的值,但我想在数据标签中显示名称。我对highchart不太熟悉,你能帮我在数据标签中显示前三名而不是值吗。。我返回了“this.key”而不是val,结果它成功了。如果可能,请添加此评论作为答案,我会将其标记为已回答。它可以帮助其他用户。更新的提琴:您可以使用dataLabels.formatter函数:谢谢@GrzegorzBlachliński它似乎在工作,但在您的提琴中显示,数据标签中有值,但我希望数据标签中有名称。我对highchart不太熟悉,你能帮我在数据标签中显示前三名而不是值吗。。我返回了“this.key”而不是val,结果它成功了。如果可能,请添加此评论作为答案,我会将其标记为已回答。它可以帮助其他用户。更新小提琴:
            plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true
                },
                showInLegend: true
            }
        }
formatter: function() {
          var val = this.y,
            allData = $.extend(true, [], this.series.processedYData).sort(),
            length = allData.length;
          if (length - 4 >= 0 && val > allData[length - 4])
            return val;
}