Zoomcharts の pie.info.contentsFunction にカスタム情報を追加できるようにする必要があります。ページに複数のグラフがあり、それぞれがそのように作成されています...
var pc = new PieChart({
pie: {
innerRadius: 0.5,
},
container: chartContainer1,
area: { height: 500 },
data:chartData,
toolbar: {
"fullscreen": true,
"enabled": true
},
info: {
contentsFunction: boomChartTT
}
});
「boomChartTT」関数では、どのチャートがホバーされているかを知る必要があります。このようなことができるようになりたい...
info: {
contentsFunction: boomChartTT(i)
}
...ここで、「i」はチャートのインデックスです。
チャート インデックスを知る必要がある理由は、各チャートのインデックス付き配列に他のデータを保存しているためです。グラフのインデックスは、データのインデックスと一致します。
例: ユーザーが chart2 のスライスにカーソルを合わせた場合、boomChartTT 関数に '2' を渡して、そのチャートの合計データ (totalsData[2] など) にアクセスできるようにします。
過去に他のチャートライブラリでこれを行ったことがあります.チャートコンテナにデータ属性を追加するだけで、インデックスを取得できます...
<div id="chartContainer1" data-index="1"></div>
...そして、ホバー関数 (contentsFunction) から chartContainer にアクセスして、そのインデックスを取得できます。
冗長な各スライスに合計データを追加する必要があるため、合計データを実際のチャート データに追加したくありません。
これを行う方法はありますか?
私の投稿が不明確な場合はお知らせください。
追加するために編集:私はそれが問題ではないと思いますが、ここにboomChartTT機能があります:
function boomChartTT(data,slice){
var tt="<div class=\"charttooltip\">";
if(data.name==="Others" || data.name==="Previous"){return tt+=data.name+"</div>";}
//var thisData=dataSearch(totalsData[i],"REFERRINGSITE",data.id);
tt+="<h5 class=\"strong\">"+data.id+"</h5>"+oHoverTable.render(thisData)+"</div>";
return tt;
}
コメント行は、正しい totalsData を取得するためにインデックス (i) が必要な場所です。