代码之家  ›  专栏  ›  技术社区  ›  Joseph Jung

为TeeChart(Javascript/HTML5)向CandleChart(OHLC)添加数据

  •  0
  • Joseph Jung  · 技术社区  · 11 年前

    我正试图画一个 CandleStick a的图表 TeeChart JavaScript版本。 然而,我只找到了下面的演示。 我想了解如何添加系列(数据),而不是使用 addRandom() 方法 一 addRandom( )没有解释如何添加实际数据。

    如果你能提供添加Json数据的演示,那就太棒了。 提前谢谢。

    function draw() {
      Chart1=new Tee.Chart("canvas");
      Chart1.title.text="Candle OHLC";
    
      var ohlc=new Tee.Candle();
      Chart1.addSeries(ohlc).addRandom(20);
    
      Chart1.draw();
    }
    
    1 回复  |  直到 11 年前
        1
  •  0
  •   Narcís Calvet    11 年前

    你会发现 populating series with JSON examples 在演示中 here ,特别是在 数据源 部分

    蜡烛系列应该这样填充:

    series.add(DateTime date, double open, double high, double low, double close);
    

    然而,对于Javascript版本,您应该创建这样的add函数:

    function draw() {
      Chart1=new Tee.Chart("canvas");
      Chart1.title.text="Candle OHLC";
    
      var ohlc=new Tee.Candle();
      Chart1.addSeries(ohlc);
    
      ohlc.add=function(open, close, high, low) {
        var d=this.data;
        var count;
    
        if (d.open) count=d.open.length+1; else count=1;
        d.values.length=count;
        d.close=d.values;
    
        if (d.open) d.open.length=count; else d.open=new Array(1);
        if (d.close) d.close.length=count; else d.close=new Array(1);
        if (d.high) d.high.length=count; else d.high=new Array(1);
        if (d.low) d.low.length=count; else d.low=new Array(1);
    
        d.open[count-1]=open;
        d.close[count-1]=close;
        d.high[count-1]=high;
        d.low[count-1]=low;
      }
    
      for (var i=0; i<5; i++) {
        var o=25+Math.random()*100;
        var c=o+(Math.random()*25)-12.5;
        ohlc.add(o, c, Math.max(o,c)+Math.random()*15, Math.min(o,c)-Math.random()*15);
      }
    
      Chart1.draw();
    }