2016-11-06 1 views
0

私は、一連のデータポイント全体が満たされないという点で、より多くの行動をとる単純なドーナッツチャートを行っています。現在私は空の空間として機能するためにシリーズに第2のデータポイントを入れていますが、これはツールチップとハイライトを隠す必要があるというすべての落とし穴があります。これに最善のアプローチは何ですか?私はチャートの合計値を設定することができると思ったが、どこでもドキュメントでそれを見つけることができなかった。すべてのスライスを含まないHIghchartsドーナツチャート

答えて

1

円シリーズでは、合計値はすべてのポイントの値を合計して計算されます。

ポイントの値とスライスの大きさに基づいて、2番目のポイントを追加して非表示にし、ignoreHiddenPointをfalseに設定します。

series: [{ 
    type: 'pie', 
    name: 'Brands', 
    colorByPoint: true, 
    ignoreHiddenPoint: false, 
    data: [ 
    { 
    y: 50, 
    visible: false 
    }, 
    50] 
}] 

例:http://jsfiddle.net/41xqpnzf/1/

必要に応じて、あなたがupdateTotals()動作を変更することができますし、一定の合計値を設定することができますので、それを拡張。

Highcharts.seriesTypes.pie.prototype.updateTotals = function() { 
var i, 
    total = 0, 
    points = this.points, 
    len = points.length, 
    point, 
    ignoreHiddenPoint = this.options.ignoreHiddenPoint, 
    fixedTotal = this.options.fixedTotal; 

if (!Highcharts.isNumber(fixedTotal) || fixedTotal < 0) { 
    // Get the total sum 
    for (i = 0; i < len; i++) { 
    point = points[i]; 
    // Disallow negative values (#1530, #3623, #5322) 
    if (point.y < 0) { 
     point.y = null; 
    } 
    total += (ignoreHiddenPoint && !point.visible) ? 0 : point.y; 
    } 
} else { 
    total = fixedTotal; 
} 

this.total = total; 

// Set each point's properties 
for (i = 0; i < len; i++) { 
    point = points[i]; 
    point.percentage = (total > 0 && (point.visible || !ignoreHiddenPoint)) ? point.y/total * 100 : 0; 
    point.total = total; 
} 
}; 

そしてオプション

series: [{ 
    type: 'pie', 
    name: 'Brands', 
    fixedTotal: 100, 
    colorByPoint: true, 
    data: [50] 
}] 

例:http://jsfiddle.net/41xqpnzf/2/

Highchartsまた、ゲージチャートを持っているので、多分これはあなたが探しているものである - ノー円グラフを調整します。

関連する問題