我正在通过d3.js制作组条形图,但收到一个错误,我无法找出原因。我仍然是d3.js的新手,并且正在尝试自己学习脚本。社区的任何帮助将不胜感激。
错误是由这段代码引起的:
y.domain([0, d3.max(data, function(s_category) {
return d3.max(s_category.values,
function(d) {
return d.count; });
})
]);
错误:
未捕获的TypeError:无法读取未定义的属性'length'
以下是我的完整代码:
https://blockbuilder.org/lydiawawa/9efb5df76c08640316efbef702437db7
在图上,计数应为y轴,drug_c为x轴,而s_category确定条形图的组。
答案 0 :(得分:1)
鉴于您的数据结构只是对象的平面阵列,因此获取域的代码片段毫无意义。
但是,知道这一点:
values
。在我看来,您打算使用nest
生成器,如下所示:
const nestedData = d3.nest()
.key(function(d){return d.s_category})
.entries(data);
这是您所做的更改的代码:http://bl.ocks.org/GerardoFurtado/80ba2580f758a64046c3e6f513203cd2/7aa3816ad65ed09bd99eeb29ba80892e19cdcbd0
PS:带刻度的填充以及颜色的带刻度的使用是错误的(应该是顺序的)。另外,我删除了图例,您必须修复该代码段。