2012-07-06 27 views
1

我具有包括兩條線(一條水平線,和一個拋物曲線)的圖,我想顯示交叉過點的值,以及與文本「MSY標籤它標籤的一個點」。我試圖使用選項pointLabels,但似乎我沒有找到正確的方法。任何人都可以給我一些提示嗎?這是問題的demojqplot上的情節

jQuery代碼:

$(document).ready(function() { 
    $.jqplot.config.enablePlugins = true; 
    var s1 = [[0.0, 0.0], [1.0, 0.036], [2.0, 0.064], [3.0, 0.084], [4.0, 0.096], [5.0, 0.1], [6.0, 0.096], [7.0, 0.084], [8.0, 0.063], [9.0, 0.036], [10.0, 0.0]]; 

    $.jqplot('chart1', [s1], { 
     seriesDefaults: { 
      showMarker: false, 
      pointLabels: { 
       show: false 
      } 
     }, 
     axes: { 
      xaxis: { 
       label: 'X label', 
       pad: 0 
      }, 
      yaxis: { 
       label: 'Y label', 
       labelRenderer: $.jqplot.CanvasAxisLabelRenderer 
      } 
     }, 
     legend: { 
      show: true, 
      location: 'ne', 
      placement: 'inside', 
      fontSize: '11px' 
     }, 
     canvasOverlay: { 
      show: true, 
      objects: [ 
       { 
       horizontalLine: { 
        y: 0.1, 
        color: 'rgb(100, 55, 124)', 
        show: true, 
       }} 
      ] 
     }, 
     pointLabels: { 
      show: true, 
      labels: [[5, 0.10]], 
      hideZeros: true 
     } 
    }) 
})​ 

回答

2

沒有直解決方案,但假設該拋物線是均勻的。我只是做了一些假設來計算拋物線的頂點。它只是一個近似值。並且準備了一個可以用於Series標籤的數組。

var k = Math.round(s1.length/2); //Assuming your Parabola to be uniform 
    var l = []; 
    var i=0; 
    while(i<(k-1)) 
    { 
    l.push(""); 
     i++; 
    } 
    l.push('MSY'); 

現在我們有了l數組,現在我將它饋送到系列選項以獲得所需的結果。

series: [ 
      { 
      pointLabels: { 
       show: true, 
       labels: l 
      }}], 

我已經對小提琴進行了必要的修改並更新了它http://jsfiddle.net/JWhmQ/292/。 我建議你找一個小插件或建立一個小的腳本,這將使你的拋物線的頂部或頂點,並使用以上對。它會解決你的問題。

+0

謝謝你幫我這。一個問題,有沒有一種方法來運行這個推送函數'l.push('MSY')'沒有循環'K'步驟? – 2012-07-06 19:15:24

+0

其實,如果你看看那些k步我其實只是空白數據添加到陣列中,使「MSY」的位置來在中央。請參閱由於圖中有十個值。我認爲中心點是k = 10/2,並將其舍入。結果是6。然後將升陣列形成這應該是,例如[「」,「」,「」,「」,「」,「MSY」]。這是該系列的一部分。所以必須以這種方式進行迭代。希望這是明確的。但如果圖表是動態的,我會建議您在不久的將來得到一些公式來發現它。暫時這不會導致問題。 :) – 2012-07-06 19:19:18

+0

謝謝。實際上,在這種情況下,我的拋物線總是一致的。所以我想知道是否可以直接在位置K處使用插入「MSY」到I矢量? – 2012-07-06 19:23:05