2017-10-25 50 views
0

株価チャートに新しいデータポイントを追加する機能があります。データポイントの1つにアイコンが付いた条件を作成する必要があります。私はstockEventsはこれを行うことができていることがわかりますが、私のチャートに表示されないです:amChartsに動的に株価を追加する方法

function addDataPoint(ask) { 
     var dataProvider = chart.dataSets[0].dataProvider; 
     var newDate = new Date(dataProvider[dataProvider.length - 1].date.getTime()); 
     newDate.setHours(newDate.getHours(), newDate.getMinutes() + 1, newDate.getSeconds()); 
     var a = Math.round(Math.random() * (40 + 1000)) + 100 + 1000; 
     var b = Math.round(Math.random() * 100000000); 
     dataProvider.push({ 
      date: newDate, 
      value: ask, 
      volume: ask 
     }); 
     chart.dataSets[0].stockEvents = [{ 
      date: newDate, 
      type: "flag", 
      text: "F", 
      description: "Some longer\ntext can also\n be added" 
     }]; 
     dataProvider.shift(); 
    } 

答えて

1

あなたはそれが見えるようにするために、在庫イベントのgraphプロパティを設定する必要があります。これは、在庫グラフオブジェクトへの参照、またはグラフのidとすることができます。また、addDataPoint関数の外でチャートを更新していない場合は、validateDataに電話してチャートを更新する必要があります。

AmCharts.makeChart("chartdiv", { 
    // ... 
    "panels": [{ 
    // ... 
    "stockGraphs": [{ 
     // ... 
     "id": "g1", //added id 
     // ... 
    }, 
    // ... 
    ] 
    }, 
    // ... 
    ], 
    // ... 
}); 
// ... 
function addDataPoint(ask) { 
    // ... 
    chart.dataSets[0].stockEvents = [{ 
    date: newDate, 
    type: "flag", 
    text: "F", 
    graph: "g1", //added 
    description: "Some longer\ntext can also\n be added" 
    }]; 
    dataProvider.shift(); 
    chart.validateData(); //added 
} 

さらに、addDataPoint関数では、stockEvents配列を上書きしています。以前のイベントを保存したい場合は、配列なのでpushを使用する必要があります。

Demo

関連する問題