もう少し制御が必要なため、Google 円グラフのカスタム凡例を作成しています。
凡例がデフォルトの凡例とまったく同じようにチャートと相互作用することを望みます。次のように、対応するスライスを選択する凡例行にリスナーを追加できます。
myChart.setSelection([{row: selectedIdx]);
これにより、スライスをクリックしたかのようにスライスが選択されます。つまり、スライスから数ピクセル離れた場所にハード ラインがレンダリングされます。
それは問題ありませんが、私が本当に望んでいるのは、スライスのマウスオーバー、つまりスライスの「ハイライト」を複製することです。
グラフがマウスオーバーをリッスンし、イベントを調べてどのスライスを強調表示するかを判断しているのではないかと考えたので、onmouseover リスナーをアタッチしました。パイのスライスの上にマウスを置いたときに渡された偶数は次のとおりだったので、それは正しいように見えました。
Object {row: 1, column: null}
次に、凡例行リスナーでチャートのマウスオーバーをトリガーし、同じイベントを渡しました。
google.visualization.events.trigger(myChart, 'onmouseover', {row: selectedIndex, column: null});
しかし、それはうまくいきませんでした。また、JS オブジェクトを明示的に作成し、選択したインデックスで parseInt を使用してみました。Firefox デバッガーでは、両方 (実際のマウスオーバー、レジェンド トリガー) はリスナーの観点からはまったく同じように見えましたが、実際のマウスオーバーのみがスライスを強調表示しました。
それは私を困惑させます。これを行う方法を知っている人はいますか?理想的には、次のようなものを探しています:
var slice = myChart.getSlice(someIndex);
slice.setHighlighted();
ありがとうございました