我是D3的新手,我一生都无法弄清楚嵌套的数据以及它与使用d3.stack()创建堆积的条形图有何关系。
我使用的数据很敏感,因此我无法提供,但是它具有以下一般结构:
每行都是具有相关医师和付款人的索赔。医师可以有与之相关的任何数量的索赔,这些索赔又可以由任何付款人支付
我想制作一个堆积的条形图和相关的图例。每位医师一个杆,每个堆叠的杆由付款人的索赔数量相对确定。图例应包括所有付款人(即使某些酒吧没有代表所有付款人)。例如:
医生A提出了100项索赔。付款人A付了12笔,付款人B付了35笔,付款人C付了27笔,付款人D付了其余的钱(26项索赔)。因此,第一个小节将细分为4个部分,其中每个部分的大小都取决于与之相关的声明的数量
我已使用以下代码嵌套数据:
d3.csv("resources/data/claims.csv").then(function(data) {
dataViz(data);
});
function dataViz(incomingData) {
var claimsData = incomingData;
var caseDistributionByPhysicianByPayorData = d3.nest()
.key(d=>d.responsible_physician)
.key(d=>d.payor_code)
.sortKeys(d3.ascending)
.entries(claimsData);
}
这将导致以下数据结构:
我的问题是我不知道如何从此变为堆积的条形图。我已经阅读了有关nest()和stack()的文档,但所阅读的内容似乎无济于事,无法解释如何将这些数据转换为堆栈。使用选择和这些数据,我只能为N个医生生成元素,嵌套数据的子对象似乎无法访问。我是否正确解析此数据?还是这对我正在尝试的工作毫无结果。然后可以将此数据传递到d3.stack()以产生我想要的吗?抱歉,这是一个基本问题。我对此并不陌生,但仍在弄清楚D3。感谢您的任何帮助。