1

按照 Mike Bostock 的关于命令行制图的精彩教程,在尝试生成 choropleth 时,我收到一个 TypeError 说这d3.scaleSequential不是一个函数。我想它只是没有被曝光?但我不知道如何通过 CLI 处理...?

错误回溯:

TypeError:d3.scaleSequential 不是函数
    在 evalmachine.:1:26
    在界面。(/usr/local/lib/node_modules/ndjson-cli/ndjson-map:45:14)
    在 emitOne (events.js:77:13)
    在 Interface.emit (events.js:169:7)
    在 Interface._onLine (readline.js:210:10)
    在界面。(readline.js:340:12)
    在 Array.forEach (本机)
    在 Interface._normalWrite (readline.js:339:11)
    在 ReadStream.ondata (readline.js:86:10)
    在 emitOne (events.js:77:13)

我已经通过 npm 安装和更新了所有需要的库,所以这不是问题......关于如何调试它的任何想法将不胜感激。

当前安装:

  • d3@4.9.1
  • d3-geo-projection@2.1.2
  • d3-scale@1.0.6
  • d3-scale-chromatic@1.1.1

示例代码

代码几乎直接从教程中复制而来,这是不起作用的第一步..

ndjson-map -r d3 \
  '(d.properties.fill = d3.scaleSequential(d3.interpolateViridis).domain([0, 4000])(d.properties.density), d)' \
   ca-albers-color.ndjson
4

1 回答 1

1

当您使用 CLI 时,d3需要 node.js 可以访问,因此您应该npm install -g d3(全局)或在您运行命令行脚本的目录中,npm install d3.

更新:如果您使用全局方法,您可能需要链接包(https://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/)或设置您的NODE_PATH变量可以访问安装全局模块的文件夹。

于 2017-06-05T16:04:18.713 回答