我正在尝试为
d3.js
气泡图分配动态域值。我正在为每个客户端的错误总额创建气泡。当我使用硬编码范围时,我会看到每个客户端的气泡。我有一个可用的 jsfiddle here.
.x(d3.scaleLinear().domain([0, 30]))
.y(d3.scaleLinear().domain([0, 30]))
.r(d3.scaleLinear().domain([0, 250]))
但是,当我将这些更改为我使用
d3.extent
计算的最小值和最大值时,它不起作用。
var minMax = d3.extent(data, function(d) {
if (d.status == "settlement error") {
return d.amount;
}
});
问题在于,最小值和最大值是针对错误类型计算的,而不是针对聚合金额计算的。
这是我的简化数据:
id,client,date,amount,status
10003,chase,2023-02-01,8,settlement error
10007,bofa,2022-11-22,2,settlement error
10008,citi,2022-11-22,8,settlement error
10009,chase,2023-02-01,4,settlement error
这应该翻译成:
chase - error count = 2, total amount = 12
bofa - error count = 1, total amount = 2
citi - error count = 1, total amount = 8
但是,如果你看到数据,最小数量是 2,最大数量是 8。这就是我的
minMax
值设置为 [2,8]
。相反,我想要 [2,12]
以获得更好的绘图效果。如果我能得到一些像[1,15]
这样的填充就更好了。
minMax
只是一个包含2个值的数组,[2,8]
,如果你想删除最小值并添加最大值,你可以简单地这样做
minMax = [ minMax[0] - 2 , minMax[1] + 7 ];
或者以任何你想要的方式生成它