0

一度に 1 つだけ表示される 4 つの一連のデータを含むチャートがあります。4 つのシリーズはすべてチャートに追加されていますが、3 つが表示されていません。別のシリーズを表示するには、凡例でクリックします。そのシリーズは表示できるようになりましたが、他の 3 つは表示されません。

以下は、私たちが行っていることのサンプルです: jsFiddle。ではエクスポート ボタンが有効になっていないことに注意してください。以下の項目 3 を参照してください。

ユーザーがチャートをエクスポートできるようにしています。これをテストすると、2 つの問題が見つかりました (そして、この投稿の jsFiddle を作成しようとしたときに 3 つ目の問題が発生しました) rangeSelector:これは、チャートが最初にロードされるときのデフォルトの選択です。rangeSelectorをエクスポートから削除することで解決しました。これは実際には理想的な解決策ではありませんが、バグを隠します。方法は次のとおりです。

 exporting: {
     chartOptions: {
         rangeSelector: {
             enabled: false
         }
     },
     buttons: {
         enabled: false
     },
     filename: 'UnempRate',
     width: 590
 }

2) 表示されるシリーズを変更するときは、ナビゲーター シリーズもそれに設定し、チャート タイトル (グラフの下部にあります) を更新します。ユーザーがデータをエクスポートすると、メイン グラフには正しいシリーズがリストされますが、ナビゲーターは元の「ロードされた」シリーズに戻り、チャート タイトルも同様です。

3) この jsFiddle を作成しようとすると、エクスポート ボタンを有効に設定した場合にのみ定義されていないevents: legendItemClickというエラーが表示されます。chartTrend

 navigation: {
     buttonOptions: {
         enabled: false
     }
 }

したがって、ここで問題を確認する方法がわかりません。

基本的に、ナビゲーター シリーズとチャート タイトルは、ユーザーがlegendItemClickチャートのエクスポートを選択したときに選択したものと一致する必要があります。

4

1 に答える 1

0

これらの問題は、エクスポート モジュールの動作の結果です。

基本的に、隠し要素にまったく新しいチャートを作成します。この新しいグラフは常に SVG レンダラーを使用します (そのため、古い IE や Android 2.x などの SVG をサポートしていないブラウザーは、表示できないコードを生成します)。次に、Highcharts は生成された SVG コードを取得し、exportin サーバーに送信します。ただし、この新しいチャートはオプションから作成されるため、ランタイムで変更したほとんどすべてが失われます。

Android 2.x または IE<9 をサポートする必要がない場合は、chart.getSVG を呼び出して、POST リクエストをエクスポート サーバーに直接送信できます。サンプルのリクエスト ペイロードは次のとおりです。

------WebKitFormBoundaryiBhRpBiiTfKjcspB
Content-Disposition: form-data; name="filename"

UnempRate
------WebKitFormBoundaryiBhRpBiiTfKjcspB
Content-Disposition: form-data; name="type"

image/png
------WebKitFormBoundaryiBhRpBiiTfKjcspB
Content-Disposition: form-data; name="width"

590
------WebKitFormBoundaryiBhRpBiiTfKjcspB
Content-Disposition: form-data; name="scale"

2
------WebKitFormBoundaryiBhRpBiiTfKjcspB
Content-Disposition: form-data; name="svg"

<svg xmlns:xlink="http://www.w3.org/1999/xlink" ...and so on to the end of SVG code
------WebKitFormBoundaryiBhRpBiiTfKjcspB--

ただし、できるだけ多くのブラウザーをサポートする必要がある場合は、ナビゲーター シリーズ、アクティブな範囲セレクター ボタンなどの情報を保存し、それらを exportChart メソッドの 2 番目のパラメーターとして渡す必要があります: http://api.highcharts.com/highcharts# Chart.exportChart()

于 2013-03-24T13:49:20.597 に答える