2012-02-07 40 views
2

我有一個Web服務,它將日期值(對於x軸)發送到一個數組中。它發送另一個數組中的y軸值。jqplot:分隔刻度和系列值

是否有可能讓jqPlot用2個這樣的數組創建圖表。文檔似乎表明這是可能的。

我知道在一個數組作品中結合日期和系列值。想避免組合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

同樣的問題,我有5個系列,所有具有相同的x軸日期,似乎是重複第一個系列[date1,y1-val1] [date2,y1-val2] ...然後爲第二個系列[date1,y2-val1] [date2,y2-val2] ...但使用ticks:dateValues和DateAxisRenderer只是產生一個空白圖表。有趣的是,y軸刻度計算正確,x軸顯示正常。這只是沒有畫線。 – 2016-09-01 09:57:46

回答

1

我想不通的jqPlot辦法接受你要如何定義你的輸入(蜱的選擇似乎只能用數字工作)。我很好奇「避免額外處理」的評論。使用jQuery,它將如此簡單:

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

將兩個數組「合併」爲點對。

+0

Mark,同意$ .map是一種快速合併的方法。我想避免寫更多的Javascript行,保持儘可能小。由於文檔建議蜱和系列可以獨立提供,我希望能夠使用該捷徑。 - 謝謝 – Abhi 2012-02-08 11:57:33

0

在「多重蜱爲同一日期」的日期軸可以通過包括下面的代碼段來解決:

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

請包括下xaxis:而不是下tickOptions:最小值,最大值和tickInterval。

在我的情況下,我有數組dateVal中的日期值,其中第0個元素是x軸日期的最小值,最後一個元素是最大日期值。如果你希望你可以對日期值進行硬編碼。

我希望這會有所幫助。