2011-12-20 2 views
4

私は(横の)棒グラフを持っており、そのシリーズの棒のベース(またはほとんどの部分)にdataLabelを追加したいと思います。バーシリーズのベースにデータラベルを配置する方法

これに類似

http://flowingdata.com/2009/05/22/poll-results-what-data-related-area-are-you-most-interested-in/

この値を設定するには、フォーマッタ関数を使用して、方法はありますか?

plotOptions: { 
    bar: {   
     dataLabels: { 
      formatter: function() { 
       this.series.options.dataLabels.x = ????????????? 
       return this.y; 
      }, 

答えて

12

フォーマッタ機能のタスクは、ラベルテキストをフォーマットすることです。これはチャートの内部状態を変更する方法を提供しますが、それは実際にはちょうどハックなので、うまく動作しないかもしれません。

ラベルをベースに配置する1つの方法は、データラベルの代わりにスタックラベルを使用することです(データラベルは、バーの上部に左揃えまたは右揃えで配置されます)。 、ベースでスタックのラベルを設定するためには:

yAxis: {       // The y axis is horizontal 'bar' layout 
    stackLabels: { 
     style: { 
      color: 'white'  // Make the labels white 
     }, 
     enabled: true,   // Enable stack labels 
     verticalAlign: 'middle', // Position them vertically in the middle 
     align: 'left'   // Align them to the left edge of the bar 
    } 
} 

また'normal'に積み重ね設定する必要があります:jsfiddle

例:

enter image description here

は更新のための:ラベルstack-totalalsは、特定のカテゴリ(スタック)のすべての系列の合計を表示するので、チャート内の単一の系列をスタックラベルにする場合にのみデータラベルは同じ値を示します。

関連する問題