我有一个小组,其减少后的元素看起来像这个伪代码:
{
key:"somevalue",
value: {
sum: the_total,
names:{
a: a_number,
b: b_number,
c:c_number
}
}
}
在我的dc-js geoChoropleth图valueAccessor
中(d) => d.value.sum
在我的中title
,我想使用names
减少量的组成部分。但是当我使用时.title((d) => {...})
,我可以只访问键和函数所产生的值,valueAccessor
而不是原始记录。
那是真的吗?
这是geoChoropleth图表的特点。
大多数图表将组数据直接绑定到图表元素,但是由于geoChoropleth图表具有两个数据源,即地图和组,因此它绑定了地图数据并隐藏了组数据。
这是直接的罪魁祸首:
_renderTitles (regionG, layerIndex, data) {
if (this.renderTitle()) {
regionG.selectAll('title').text(d => {
const key = this._getKey(layerIndex, d);
const value = data[key];
return this.title()({key: key, value: value});
});
}
}
它本身在创建键/值对象,而值,正如您所推导的,来自valueAccessor
:
_generateLayeredData () {
const data = {};
const groupAll = this.data();
for (let i = 0; i < groupAll.length; ++i) {
data[this.keyAccessor()(groupAll[i])] = this.valueAccessor()(groupAll[i]);
}
return data;
}
抱歉,这不是一个完整的答案,但是我建议添加一个pretransition
处理程序来替换标题,或者使用传递给标题访问器的密钥来查找所需的数据。
正如我在上面链接的问题中指出的那样,我认为这是一个非常严重的设计错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句