dc.bubbleChart 滤镜上的动态气泡半径

dc.bubbleChart dynamic bubble radius on filter

我有一个气泡图,我将气泡放在 svg 世界地图上以查看我的销售比例。

我从计算产品总销售额的函数中获取气泡半径值。

并且我设置 d3.scaleLinear 最小值-最大值与总销售额的最小值-最大值成比例。

caChart.width(1000)
                        .height(1000)
                        .dimension(countryDim)
                        .group(countryBubble)
                        .radiusValueAccessor(function (p) {
                            return (Math.floor((p.value.Sales_sum / 2.5)));
                        })
                        .r(d3.scaleLinear().domain([28, 10000000]))
                        .maxBubbleRelativeSize(0.18)
                        .minRadius(2.5)
                        .minRadiusWithLabel(10)
                        .colors(d3.schemeSpectral[9])
                        .colorDomain([500, 700000])
                        .colorAccessor(function (p) {
                            return (Math.floor((p.value.Sales_sum)));
                        })

一切都很完美,但如果我对 "PRODUCT A" 进行过滤,我无法理解它卖给哪个国家/地区最多,因为气泡半径变得太小了。

我可以制作一个不受任何滤镜影响的动态气泡半径吗?所以即使过滤了最畅销的国家泡沫半径也会像没有过滤器一样?

也许 d3.scaleLinear 上的一些改变让它起作用了?

希望我说清楚了。谢谢

听起来您正在寻找 bubbleChart.elasticRadius

Turn on or off the elastic bubble radius feature, or return the value of the flag. If this feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.

具体来说,每次绘制图表时,都会将 radius scale 的域设置为图表中找到的最小和最大气泡尺寸。

所以最大和最小的气泡应该保持相同的大小。绝对数字很难说,但相对销售额的比例应该很清楚。

像这样启用弹性半径:

chart.elasticRadius(true)