2012-06-28 28 views
10

JqPlotで「データなし」を処理する最良の方法はありますか?JqPlotでデータを扱う方法

[['North'][0],['South'][0],['East'][0],['West'][0]] 
+0

状態からUncaught Error: No data specifiedこれは多くのことを助けました。例外をスローするのではなく、レンダリングするデータがない場合、JQPlotは空のプロットを返すべきではありませんか?私には、これは有効な状態であり、エラーではありません。 – Stefan

答えて

13

私はいつもノーをチェックし、私は私のAJAX機能でチェック状態を、持っている:例えば、私はAJAX呼び出しとJSONデータを消費してると仮定すると、最終的に使用可能なデータがない

結果。それから結果が出ない場合は、グラフが空に見えるように設定します。このため、var data = [[null]]は、dataのパラメータがjQuery.jqplot('chart', data, {})である必要があります。 dataの値は、グラフの種類に依存している可能性があります。したがって、線グラフ、棒グラフ、円グラフのテストを行い、正常に動作します。

任意で、プロットの凡例や他の部分を非表示にすることもできます。私にとっては、dataと凡例を設定するだけで十分です。

2

var data = [null];コンソールでエラーが発生し、JSスクリプトの実行がさらに停止します。 より良い解決策は、以下を使用することです。

var data = ['']; 
jQuery.jqplot('chart', data, {}); 

FF/Chrome/IEコンソールで、これ以降のグラフを印刷したり、JSスクリプトの実行をエラーなく続けたりします。 :-)

+0

これはあなたのためにどのように動作するのかよくわかりません - '$ .isArray(data [0])== false || data [0] .length == 0' in https://github.com/jqPlot/jqPlot/blob/1870d3beddd96dc62b948196c4eb9dfd5833e763/src/jqplot.core.js#L2063 – user60561

2

私の場合、それはRahiの答えとは逆でした(nullの周りに二重括弧がないことが問題でした)、私はBoroに同意します。

var data = [[null]]; これは:var data = [''];は、複数のチャートを持っていても1つのデータでも、エラーが発生します。

私はjqPlot 1.0.9

私が手にエラーが実行しているよ:jqPlotスクリプト

if (0 == this.noDataIndicator.show) 
        throw new Error("No data specified");