0

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) が必要な場所です。

4

1 に答える 1