2013-12-11 55 views
0

I'm設計具有jqGrid的圖表從MVC控制器得到一個網頁第二基礎數據。jqPlot顯示不工作

我不能讓jqPlot正確繪製秒的數據。它正確繪製了一些數據(圖形的右側),然後在同一個X軸上繪製了幾個點,這是不正確的。從來就向下鑽取的問題爲以下代碼:

[編輯] 向下鑽取的問題。

JavaScript代碼:

<script type="text/javascript" src="~/Scripts/jqplot/jquery.jqplot.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.highlighter.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.cursor.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.dateAxisRenderer.min.js"></script> 
<script type="text/javascript" src="../src/plugins/jqplot.dateAxisRenderer.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.pieRenderer.min.js"></script> 

<div id="chart"></div> 

<script type="text/javascript" src="~/Scripts/jqplot/jquery.jqplot.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.highlighter.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.cursor.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.dateAxisRenderer.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js"></script> 
<script type="text/javascript" src="~/Scripts/jqplot/plugins/jqplot.json2.min.js"></script> 

<script type="text/javascript"> 

    $(document).ready(function() { 

     var line1 = [['2013-12-11 19:57.28', 10], 
        ['2013-12-11 19:57.27', 20], 
        ['2013-12-11 19:57.26', 30], 
        ['2013-12-11 19:57.25', 40], 
        ['2013-12-11 19:57.24', 50], 
        ['2013-12-11 19:57.23', 60], 
        ['2013-12-11 19:57.22', 70], 
        ['2013-12-11 19:57.21', 80], 
        ['2013-12-11 19:57.20', 90], 
        ['2013-12-11 19:57.19', 10], 
        ['2013-12-11 19:57.18', 20], 
        ['2013-12-11 19:57.17', 30], 
        ['2013-12-11 19:57.16', 40], 
        ['2013-12-11 19:57.15', 50], 
        ['2013-12-11 19:57.14', 60], 
        ['2013-12-11 19:57.14', 70], 
        ['2013-12-11 19:57.12', 80], 
        ['2013-12-11 19:57.11', 90], 
        ['2013-12-11 19:57.10', 10], 
        ['2013-12-11 19:57.09', 20], 
        ['2013-12-11 19:57.08', 30], 
        ['2013-12-11 19:57.07', 40], 
        ['2013-12-11 19:57.06', 50], 
        ['2013-12-11 19:57.05', 60], 
        ['2013-12-11 19:57.04', 70], 
        ['2013-12-11 19:57.03', 80], 
        ['2013-12-11 19:57.02', 90]]; 

     options = { 
      title: 'Tendência Dados de Processo', 
      height: 500, 
      axes: { 
       xaxis: { 
        renderer: $.jqplot.DateAxisRenderer, 
        tickRenderer: $.jqplot.CanvasAxisTickRenderer, 
        tickOptions: { 
         angle: -90, 
         fontSize: '8pt', 
        } 
       }, 
       yaxis: { 
        tickOptions: { 
         formatString: '%.2f', 
         fontSize: '8pt' 
        } 
       } 
      }, 
      cursor: { 
       show: true, 
       showVerticalLine: true, 
       showTooltipDataPosition: true, 
       cursorLegendFormatString: '%#d %H:%M:%S', 

      }, 
      legend: { 
       show: true, 
       location: 's', 
       xoffset: 20, 
       yoffset: 20 
      }, 
      highlighter: { 
       show: true 
      } 
     } 

     var plot = $.jqplot('chart', [line1], options); 

    }); 


</script> 

jqPlot行爲:

enter image description here

我不知道我做錯了,但我需要得到這個工作的圖快。任何幫助讚賞。

回答

1

輸入 - 日期需要在標準格式。 jqPlot傳遞值$.jsDate(),它試圖許多不同的格式,但它們都沒有允許時期到分秒之間來。

改變所有的.:,和它的作品:

var line1 = [['2013-12-11 19:57:28', 10], 
      ['2013-12-11 19:57:27', 20], 
      ['2013-12-11 19:57:26', 30], 
      ['2013-12-11 19:57:25', 40], 
      ['2013-12-11 19:57:24', 50], 
      ['2013-12-11 19:57:23', 60], 
      ... 

http://jsfiddle.net/R4Keh/

+0

非常,非常棘手,但你是對的。我們不會使用'。'分隔秒,而是使用「:」 - 可能需要一段時間才能弄清楚 - 非常感謝。得到我的信用! – Mendes

+0

更深入地看,現在的順序是正確的,但我沒有繪製正確的X tick值。它顯示的不是19:57Hs的X軸,它是一個在00:00和01:50Hs之間的軸。 – Mendes

+0

自動選擇刻度格式以匹配給定值的範圍。如果所有的點都在同一小時內,它將只顯示分鐘和秒。你可以自己選擇一個刻度格式,在tick選項中設置'formatString:'%#d%H:%M:%S''。看看http://jsfiddle.net/R4Keh/1/ –