2011-08-27 25 views
5

基本的には、ユーザーはドロップダウンメニュー(BarRenderer、PieRendererなど)をクリックしてグラフのタイプを変更できるようにしたいと思います。データは同じです。同じ要素に対して$ .jqplot()をもう一度呼び出すことができますが、すべての設定をもう一度渡す必要があります。そして、私のページにはグラフの数が変わってしまい、その選択肢は非常に悪い選択です。jqplotレンダラを動的に変更する方法は?

私はこのことについてのリンクを見つけました:http://groups.google.com/group/jqplot-users/browse_thread/thread/efe6511cd9496f16/5c625baf78d3b0aeしかし、私はまだ$ .jqplot()をもう一度呼び出さなければならないようです。

これを行うより良い方法はありますか?そしてもう少し小さな質問:それは私だけか、jqplotのドキュメントは悪いですか?私は必要なオプションを見つけるために複数の場所を見なければなりません(オプションが文書化されていないか、何とか見つからないことがあります)。 jqplotの使い方をどうやって学びますか?

+0

更新データを再プロットし、 'plot1.series [0] .dataの=あるnewData; plot1.resetAxesScale(); plot1.replot(); http://stackoverflow.com/a/10901538/516748 – KCD

答えて

5

私はドキュメントが大丈夫だと思いますが、ドキュメントの中に隠された機能や癖があることがわかります。 IIRC(それはしばらくしています)あなたは$ .jqplot()をもう一度呼び出さなければなりませんが、まずあなたのターゲットを.empty()する必要があります。

何が本当に後で呼ばれるようにデータを保存し、それを許可されて実行する必要があります。

//This isn't real jqplot syntax but it should give you a good idea of what I'm explaining 

var charts = [{name:"chart1",renderer:"pie",data:[[1,2],[2,3]]}] 
$('#graph').jqplot(charts[0]); 

//later 
charts[0].renderer = "bar"; 
$('#graph').empty().jqplot(charts[0]); 
+2

empty()の呼び出しの前にチャートでdestroy()を呼び出すか、メモリリークが発生することを確認してください。 jqplotへの最初の呼び出しで返されたグラフを変数に保存し、「後で」セクションでchart.destroy()を呼び出します。プロットを再構築する前に –

関連する問題