Адаптация потокового графа к визуализации портфеля акций с использованием d3 js

Этот проект основан на потоковом графе Бостока.

Я хочу сделать его визуализатором портфеля акций. Я могу заставить свой javascript запускать все мои биржевые тикеры (хранящиеся в symbol.csv) и печатать текущие цены для каждого из них. Я не уверен, как добавить их вместо генератора случайных данных Bostock в потоковом графике. TBH, я не женат на потоковом графике как таковом, мне просто нужно немного подтолкнуть в направлении того, как связать их с визуализацией. Я понимаю, что мне понадобятся исторические данные, а не текущие данные.

Закомментированный код — это просто еще один способ получить данные, а не Yahoo API.

var i=[];
var splat;

символы var = d3.csv ("symbols.csv", функция (данные) { var arrayLength = data.length;

for (var i = 0; i< arrayLength; i++){ var symbol = data[i].ticker; var yahooURL = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%3D%22"+symbol+"%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"; var herokuappURL = "https://nasdaqviz.herokuapp.com/api/v1.1/markets/data/nsdaq/realtime/"+symbol; splat = data[i]; // $.getJSON(herokuappURL, function(jsonData){ // var quote2 = jsonData['Price']; // document.write("<p>"+splat+" : "+quote2+"</p>"); // }) $.getJSON(yahooURL, function (jsonData){ var quote = jsonData.query.results.quote; document.write("<p>"+quote.Symbol+" : "+quote.LastTradePriceOnly+"</p>"); }).error(function(xhr, errorType, exception) { var errorMessage = exception || xhr.statusText; console.log("Error "+errorMessage); }) };

});

Любая помощь приветствуется! Я застрял. Вот github, если вам интересно.


person Whitney Blank    schedule 26.07.2017    source источник


Ответы (1)


Формат стека предпочитает «широкий» формат данных, как описано в D3 API: https://github.com/d3/d3-shape/blob/master/README.md#stack

Для вашего кода вы можете либо создать набор данных в этом формате (т. е. столбец для даты, затем столбец для символа, например, дата, BLK, BARAX и т. д.). Или создайте длинный набор данных (дата, символ, цена), просматривая каждый символ, а затем преобразуйте его в широкий (например, http://jonathansoma.com/tutorials/d3/wide-vs-long-data/), но это, вероятно, будет медленнее.

Кстати, если у вас есть слой на 190 символов, то график может быть очень сжатым!

person Tom Shanley    schedule 26.07.2017