1
2
为了不削弱另一个答案,这里有一个替代方法。 取一个给定的总圆圈数,它会检查总圆圈数中需要多少有效数字(向下舍入),以便任何给定的索引都小于四舍五入的总数。 我不确定这是否完全有意义,因此我将使用一个示例: 如果总共有132个圆:
下面是一个快速演示(行是50个圆圈):
|
2
2
|
3
2
这是使用D3的完美案例 Threshold Scales :在需要颜色之间的分隔处为其指定N个数字,并为任何输入值返回N+1个颜色。以下是文档中的示例:
因此,您的案例面临的挑战是如何(例如)将示例输入593转换为两个数字的数组[500590]:
任何内容(<500张地图变为“红色”,从500-589张地图变为“蓝色”,以及≥ 590映射为“黄色”。除非使用4位数字作为输入,否则不使用附加范围颜色(“橙色”)。 注:此逻辑假定输入编号至少有2位数字。
现在,您可以在创建圆时指定颜色,而不是在数据数组中预先填充它,使用如下语法
|
4
1
其他方法似乎过于复杂。您可以将数字拆分为数字,然后根据索引创建所需的带颜色的10^digitIndex圆。我加了一行代码来检查数字是否太大。
|
Softly · 单选按钮未按预期取值 1 年前 |
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
assembler · Nextjs没有处理发布请求 1 年前 |
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
Toniq · javascript为php保存多维数组 1 年前 |