Javascript 未捕获类型错误:d3.schemeCategory20不是函数
我是d3js和所有javascript领域的新手。在我的html文件中,我只需像这样导入脚本:Javascript 未捕获类型错误:d3.schemeCategory20不是函数,javascript,d3.js,Javascript,D3.js,我是d3js和所有javascript领域的新手。在我的html文件中,我只需像这样导入脚本: <script src="https://d3js.org/d3.v4.min.js"></script> 我有个例外 未捕获的TypeError:d3.schemeCategory20不是位于的函数 index.html:48 我是否需要其他必须导入的d3js模块?或者是什么导致了这个问题?d3。SchemeCategory 20既不是一个尺度,也不是一个函数。它只是一个颜
<script src="https://d3js.org/d3.v4.min.js"></script>
我有个例外
未捕获的TypeError:d3.schemeCategory20不是位于的函数
index.html:48
我是否需要其他必须导入的d3js模块?或者是什么导致了这个问题?
d3。SchemeCategory 20
既不是一个尺度,也不是一个函数。它只是一个颜色的数组。据报道,这是
由二十种分类颜色组成的数组,表示为RGB十六进制字符串
同样的API说:
这些配色方案设计用于d3.scaleOrdinal
因此,必须将其传递到序号刻度作为其范围,如下所示:
var myScale = d3.scaleOrdinal()
.range(d3.schemeCategory20)
这与:
var myScale = d3.scaleOrdinal(d3.schemeCategory20)
下面是一个演示:
var scale=d3.scaleOrdinal(d3.schemeCategory 20);
d3.选择(“正文”)。选择全部(空)
.数据(d3.范围(20))
.输入()
.附加(“div”)
.style(“背景色”,函数(d){返回刻度(d)})
div{
最小高度:10px;
}
d3.schemeCategory20
它完全不是一个函数。它是默认颜色的数组。应该将此数组传递给缩放函数
console.log('d3.schemeCategory20==>',d3.schemeCategory20)代码>
d3 v4的
。你可以用like作为
var color = d3.scaleOrdinal(d3.schemeCategory20c);
or
var color = d3.scaleOrdinal()
.range(["red", "green", "blue", "#6b486b", "#a05d56", "#d0743c", "#ff8c00"]);
对于任何在未来D3版本中寻找它的人,以及在使用这个配色方案时也要考虑的问题。D3 5.0的变化:
D3不再提供D3.schemeCategory20*分类颜色
计划。这二十种配色方案都有缺陷,因为它们的颜色组合在一起
设计可能会错误地暗示数据中的关系:共享色调可以
暗示编码数据是组(超类别)的一部分,
相对的轻巧意味着秩序
从(v5)
D3不再提供D3.schemeCategory20*分类颜色方案。这二十种配色方案存在缺陷,因为它们的分组设计可能会错误地暗示数据中的关系:共享色调可能暗示编码数据是组(超级类别)的一部分,而相对亮度可能暗示顺序。取而代之的是,D3现在包括D3比例色度,它实现了ColorBrewer的优秀方案,包括分类、发散、顺序单色调和顺序多色调方案。这些方案在离散和连续变量中都可用
var color = d3.scaleOrdinal(d3.schemeCategory20c);
or
var color = d3.scaleOrdinal()
.range(["red", "green", "blue", "#6b486b", "#a05d56", "#d0743c", "#ff8c00"]);