根据 d3.js 气泡图的最小和最大数据集值动态设置轴域

问题描述 投票:0回答:1

我正在尝试为

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]
这样的填充就更好了。

javascript d3.js crossfilter
1个回答
0
投票

minMax
只是一个包含2个值的数组,
[2,8]
,如果你想删除最小值并添加最大值,你可以简单地这样做

minMax = [ minMax[0] - 2 , minMax[1] + 7 ];

或者以任何你想要的方式生成它

© www.soinside.com 2019 - 2024. All rights reserved.