2012-02-07 9 views
2

私は日付値(x軸のための)を1つの配列に送るWebサービスを持っています。 Y軸の値を別の配列に送ります。jqplot:チックとシリーズの値を分ける

jqPlotに2つの配列を持つチャートを作成させることは可能ですか?ドキュメンテーションはこれが可能であることを示しているようです。

日付とシリーズの値を1つの配列にまとめることはわかっています。 2つの配列を組み合わせる余分な処理を避けたいですか?

このjsFiddle http://jsfiddle.net/abhivm/HmnmH/1/はサンプルコードを示しています。誰も見て、私にこれを行う方法を教えてもらえますか?

jsFiddleは今朝エラーを返すので、以下のjQueryコードを投稿してください。

$(document).ready(function() { 
    var dateValues = ["01/15/2012", "01/17/2012", "01/18/2012", "01/19/2012"]; 
    var dailyValues = [219, 73, 73, 146]; 

    plot2 = $.jqplot('chart', [dailyValues], { 

     axes: { 
      xaxis: { 
       renderer: $.jqplot.DateAxisRenderer, 
       ticks: dateValues 
      } 
     } 
    }); 
}); 

おかげ Abhi

+0

同じ問題ですが、私は同じx軸の日付を持つ5つのシリーズを持っていますが、最初のシリーズ[date1、y1-val1] [date2、y1-val2]を繰り返すのは残念です。第2シリーズ[date1、y2-val1] [date2、y2-val2] ...しかしtickを使用する:dateValuesとDateAxisRendererは空のグラフを生成するだけです。興味深いことに、y軸スケールは正しく計算され、x軸はokと表示されます。ただ線が描かれていないだけです。 –

答えて

1

私はあなたの入力を定義する方法を受け入れるようにjqPlotための方法を把握することはできません(ダニオプションは数字のみで動作するようです)。私は "余分な処理を避ける"コメントについて興味があります。 jQueryを使用すると、2つの配列をポイントペアに「マージ」するのと同じように簡単になります:

$.map(dateValues, 
     function(val,idx){ 
      return [[val,dailyValues[idx]]]; 
     } 
); 

+0

Mark、合意した$ .mapはマージを行う簡単な方法です。私はJavascriptの行をできるだけ小さくすることを避けたい。ドキュメンテーションでは、ダニとシリーズを個別に提供できることが示唆されているので、私はそのショートカットを使用したいと考えていました。 - ありがとう – Abhi

0

日付軸の「同じ日付の複数ティック」は以下のコードを含むことによって解決することができる。

xaxis: { 
      label: "Whatever you name it", 
      renderer: $.jqplot.DateAxisRenderer, 
      min:dateVal[0], 
      max:dateVal[dateVal.length-1], 
      tickInterval: '1 day', 

tickOptions:xaxis:下MIN、MAXとtickIntervalを含むとしないください。

私のケースでは、配列datevalに0番目の要素がx軸の日付の最小値で、最後の要素が最大の日付値である日付値を持っています。あなたが望むなら、日付の値をハードコードすることができます。

私はこれが助けになることを望みます。

関連する問題