未捕获(承诺中)TypeError:d3.group 不是函数

Zay*_*iwa 2 javascript d3.js

我有一个口袋妖怪数据集,我想按类型对它们进行分组。所以会有一组类型为火、水、草等的神奇宝贝...并且d3.js有一个名为d3.group的函数。

在文档中,它将Groups指定的可迭代值声明为Map从 key 到 value 数组。我尝试遵循这个可观察的教程,但我不断收到错误Uncaught (in promise) TypeError: d3.group is not a function

我不知道我做错了什么。这是我的代码。bar_chart.js

drawBarChart = async() => {
  // 1. Access the data
  const dataset = await d3.csv('./pokemon.csv');
  console.log(dataset);

  pokemon = d3.group(dataset, d => d.type1)


  const metricAccesor = d => d.type1;

  // 2. create the dimensions
  const width = 600;
}

drawBarChart()
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE HTML>
<html>

<head>

</head>

<body>
  <div id="wrapper"></div>
  <script src="http://d3js.org/d3.v5.min.js"></script>
  <script src="./bar_chart.js"></script>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

来自 Kaggle 的 Pokemon 数据集

这是我在github上的代码

Ger*_*ado 6

API 并不完全清楚:d3-array迷你库中的一些新功能(如提到的d3.group)在捆绑包中不可用:

console.log(d3.group)
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.16.0/d3.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

因此,在这种情况下,您必须引用独立库:

console.log(d3.group)
Run Code Online (Sandbox Code Playgroud)
<script src="https://d3js.org/d3-array.v2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

因此,这就是您在结束时需要的<body>

<div id="wrapper"></div>
<script src="http://d3js.org/d3.v5.min.js"></script>
<script src="https://d3js.org/d3-array.v2.min.js"></script>
<script src="./bar_chart.js"></script>
Run Code Online (Sandbox Code Playgroud)