2015-08-13 76 views
2

需要吸取的所需點垂直線,而不是從0HighCharts - 從慾望點添加垂直線

plotLines: [{ 
      color: '#FF0000', 
      width: 1, 
      value: 4 
     }, { 
      color: '#FF0000', 
      width: 1, 
      value: 7 
     }], 

這裏開始是小提琴手鍊接:http://jsfiddle.net/bpswt3tr/4/

我的要求是畫y值爲110.2時的第一條垂直線和y值爲135.6時的第二條線,而不是從零開始。即僅在劇情線上方。請建議我如何實現這一目標?謝謝。

回答

0

考慮到documentation HighCharts默認情況下不太可能支持此功能,因爲您只允許將當前軸的值與該行相關聯。

您可能需要一個預處理步驟來反轉您的函數以獲取適當的X值。例如:

invert(data, Y) -> list of X values with data[X] = Y 
0

您可以在chart.events.load調用上執行此操作。如果您知道這些是您想要添加標記元素的點,那麼它非常簡單。您首先獲取yAxis的當前最大標籤值。然後在圖表中添加一個系列,起點爲系列的價值,第二個點爲最大可見yAxis值。然後對你想添加一個條的第二點做同樣的事情。然後,您需要將yAxis max值重新設置爲初始狀態,因爲highcharts會嘗試增加比例以適應新點。

chart: { 
     events: { 
      load: function() { 
       var yMAx = this.yAxis[0].max; 
       console.log(yMAx); 

       this.addSeries({ 
        data: [{ 
         x: 4, 
         y: 110.2, 
         marker: { 
          symbol: 'triangle' 
         } 
        }, { 
         x: 4, 
         y: yMAx, 
         marker: { 
          symbol: 'triangle-down' 
         } 
        }, ], 
        showInLegend: false, 
        color: 'red', 
        marker: { 
         enabled: true 
        } 
       }); 

       this.addSeries({ 
        data: [{ 
         x: 7, 
         y: 135.6, 
         marker: { 
          symbol: 'triangle' 
         } 
        }, { 
         x: 7, 
         y: yMAx, 
         marker: { 
          symbol: 'triangle-down' 
         } 
        }, ], 
        showInLegend: false, 
        color: 'red', 
        marker: { 
         enabled: true 
        } 
       }); 

       this.yAxis[0].update({ 
        max: yMAx 
       }); 
      } 
     } 
    } 

樣品demo

+0

@ wergeld:謝謝。我認爲添加一個新系列是非常好的主意,可以畫出類似的線條。我會嘗試在我的應用程序中複製。 – redsam