#d3.js
#d3.js
Вопрос:
у меня есть следующая таблица csv, сохраненная в файле data.csv
- Stock_Short, Country, LSCORE 2, MarketCAPUSD
- ЗАЙН,США,-4,181623392
- ZYME,США,-4,477151488
- ЦЗО, США, -6 2098448000
- ZUMZ, US,3,685746624
- …
это продолжается для нескольких стран: США, L, HK, DE и т.д.
Я хочу создать древовидную карту в d3, и она использует только иерархический список записей.
Я был в состоянии
d3.nest
данные по странам, а затем попытался использовать
d3.stratify
но он жалуется на отсутствующий корень. что я делаю не так?
я вижу на этой странице пример стратификации без использования root.
почему мой не работает?
https://github.com/d3/d3-hierarchy/blob/master/README.md#stratify
вот основные данные: https://gist.githubusercontent.com/a3igner/8935d1e1158898540a615900a8dcb249/raw/5c957cc489ba5049cdc81ef47c3688b7816fbe69/LeverExample
var height = 200;
var width = 500;
var margin = {left: 50,right:50,top:40,bottom:0};
//var tree = d3.tree().size([width,height]);
var svg = d3.select('body').append('svg').attr('width','100%').attr('height','100%');
var chartGroup = svg.append('g').attr('transform','translate(' margin.left ',' margin.top ')');
d3.json("keyedJSON-Lever.json").get(function(error,data){
console.log(data);
// console.log(data[0].children);
// console.log(data[0].children[0].children[1].name);
var nestedData = d3.nest().key(function(d){ return d.country; }).entries(data);
console.log(nestedData);
var treeData = d3.stratify()
.id(function(d) { return d.stock; })
.parentId(function(d) { return d.country; })
(data);
console.log(treeData);
});
Комментарии:
1. Ваши данные имеют несколько корней.
stratify
должно быть одно происхождение, то есть одна страна. Вы собираетесь использовать все страны или разделить их по странам?2. мне нужно сгруппировать по стране. Мне кажется странным, что вам также нужно иметь корень для country. тогда в каждой стране есть все запасы, принадлежащие этой стране. Это мой блок sofar: bl.ocks.org/a3igner/0658ea95abf9c7b729e16ca84906d6f1 /…
3. Данные вашего блока сильно отличаются от данных gist, которые вы упомянули в своем первоначальном вопросе.
4. Игнорируйте finx500, который я клонировал в примере. Levermann-All-Week15.csv — это таблица