2012-12-12 44 views
2

我有一個是在一些OHLC數據拉動,並用3系列創建圖表一個HighStock圖表 - 1燭臺,1卷,1組標誌。這一切工作正常。HighChart - 定製路徑未鏈接到圖表

我想一些自定義趨勢線添加到圖表。我將確定要點並根據自定義邏輯進行路徑。

的問題是,當我使用Renderer從圖表繪製我的路徑,該路徑沒有連接到底層圖表。隨着圖表日期範圍的修改和/或新點被添加到主要series,我的自定義路徑的位置和大小保持不變。它是不變的。

我需要的位置/自定義路徑的端點被捆綁到圖表的數據點中,SVG圖形的不是座標。有沒有辦法做到這一點?

以下是添加從pointapointb的簡單路徑的代碼部分。路徑呈現爲預期,但隨後靜:

buildPath: function(pointa, pointb){ 
     this.myChart.renderer.path(this.buildPathArray(pointa,pointb)) 
      .attr({ 
       'stroke-width': 2, 
       stroke: 'red' 
      }).add(); 
    }, 
    buildPathArray: function(pointa, pointb){ 
     var pathArray = []; 
     pathArray.push('M'); 
     pathArray.push(pointa.plotX); 
     pathArray.push(pointa.plotClose); 
     pathArray.push('L'); 
     pathArray.push(pointb.plotX); 
     pathArray.push(pointb.plotClose); 
     pathArray.push('Z'); 
     return pathArray; 
    } 

每請求,我創建a JS Fiddle that demonstrates the general issue.

任何幫助深表感謝。

+0

這不是很清楚,你可以把它搞定嗎? –

+0

我用jsfiddle鏈接更新了原來的Q.希望有幫助。 – mcolley73

回答

1

解決

這似乎並沒有免費的午餐與Highcharts。或者如果是這樣,我沒有發現這種技術。

我不得不使用我的StockChart中包含的chart對象的loadredraw事件。

load上,我繪製了初始路徑,與我趨勢線中涉及的Point對象對齊。正如我建立這些path對象(含有真正SVG path元件SVGElement對象)我保持在陣列中跟蹤它們。

redraw,我有毀滅舊趨勢線和創造新的。所以我循環了我的一系列舊元素,並從他們自己的parentNode中刪除。然後,根據每個相關對象的新繪製位置繪製新趨勢線。

最終的結果是,在每個redraw事件中,這些線條似乎隨着圖表一起移動,當它們真的被銷燬並重新創建時。