2017-10-25 2 views
0

Ich habe eine Funktion, die ich verwenden, um neue Datenpunkte zu meinem Aktienkurs hinzuzufügen. Ich muss eine Bedingung erstellen, unter der einer der Datenpunkte mit einem Symbol kommt. Ich sehe, dass stockEvents kann dies tun, aber es zeigt, nicht in meinem Diagramm:Wie stockEvents zu amCharts dynamisch hinzufügen

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(); 
    } 

Antwort

1

Sie müssen die Lager Veranstaltung graph Eigenschaft setzen, um es sichtbar zu sein. Dies kann eine Referenz auf das Bestandsdiagrammobjekt oder die id des Diagramms sein. Sie müssen auch validateData aufrufen, um das Diagramm zu aktualisieren, wenn Sie dies nicht bereits außerhalb Ihrer addDataPoint-Funktion tun.

Beachten Sie auch, dass Sie das stockEvents-Array jedes Mal in Ihrer addDataPoint-Funktion überschreiben. Wenn Sie Ihr vorheriges Ereignis beibehalten möchten, müssen Sie push verwenden, da es sich um ein Array handelt.

Demo

Verwandte Themen