我正在尝试使用 d3.js 库创建交互式图表。我想交替从存储的 json 文件或直接从字典(根据某些用户输入创建)将数据输入到 d3 对象中。
从我使用的文件中读取
d3.json('/path/to/file.json')
用户输入字典后d
被 build 。我尝试使用
user_file = json.dumps(d)
d3.json(user_file)
没有效果。
我有一个解决方法——根据用户输入,创建一个 user_file.json
文件 json.dump(d, '/path/to/user_file.json')
并直接从那里读取 d3.json('/path/to/user_file.json')
。除了感觉不太优雅之外,这还增加了新 json 文件被缓存的额外问题。
有什么建议吗?我是 javascript 新手,因此也将不胜感激有关“最佳实践”的建议。
最佳答案
d3.json()
通常有两个参数:url('/path/to/file.json')和将处理您在示例中遗漏的结果的函数。该处理程序通常是在 d3.json() 调用中声明的匿名函数,但它也可以是命名函数。我将定义一个命名函数来处理 json 结果,然后使用相同的函数来处理在用户输入上创建的数据。
function resultHandler(error, data){
... do stuff w/ data ...
}
d3.json('/path/to/file.json', resultHandler);
function userInputHandler() {
... create data ...
resultHandler(null, d);
}
关于javascript - 使用 d3.json 而不读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42497073/