2016-09-13 9 views
1

すべてを表示してスペースを埋めるのではなく、上位3データラベルのみを表示する必要があるという要件があります。これを実現するためには、ハイビルダーのAPIが利用可能か、あるいは最良のソリューションがありますか?私は十分に検索し、この質問を投稿する前に解決策を見つけることを試みたが、いずれかの助けを見つけることができませんでしたてい http://jsfiddle.net/k80ayx1t/パイチャートハイチャートで上位3データラベルを表示する方法

  plotOptions: { 
      pie: { 
       allowPointSelect: true, 
       cursor: 'pointer', 
       dataLabels: { 
        enabled: true 
       }, 
       showInLegend: true 
      } 
     } 

は、ここに私のjsfiddleです。

+1

あなたはdataLabels.formatter機能を使用することができます。http://jsfiddle.net/k80ayx1t/1/それは働いたがでているようだGrzegorzBlachliń[email protected] –

+0

感謝あなたのフィドルそれは、データラベルの値が表示されますが、私はデータラベルに名前が欲しいです。私はハイチャートには少し慣れていないので、価値の代わりにデータラベルにトップ3の名前を表示するのを助けてください。 – undefined

+0

私はvalの代わりに "this.key"を返してくれました。可能であれば、このコメントを回答として追加し、私はそれをAnsweredとマークします。他のユーザーに役立つ可能性があります。更新されたfiddle:http://jsfiddle.net/5njsu0vo/ – undefined

答えて

0

特定のデータラベルのみを返すためにdataLabels.formatter関数を使用できます(値が十分大きいポイント用)。

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; 
} 

私は私のyValuesをソートしていますし、私のdataLabelsポイントyの値が大きくなったり、私のシリーズの第三y値に等しいならば、私はチェックしています。それが大きいか等しい場合は、私は価値を返す、そうでなければ何も返さない。

ここでは、それが動作する方法の例を見つけることができます:http://jsfiddle.net/k80ayx1t/1/

関連する問題