如何选择要在 D3 力定向图中使用的 JSON 文件
How to choose which JSON file to use in your D3 force directed graph
我有一个力定向图,当它运行时,我希望能够更改读取的 JSON 文件,从而更改 data/force 定向图。
我可以通过更改文件名在 HTML 中更改它,但我希望异步执行此操作。
我看过 AJAX
和 XHR (XMLHttpRequest)
但我不知道从哪里开始
如评论中所述,这是一个宽泛的问题,因此这里有一个宽泛的答案:如果您使用的是 d3.json
,那么您可能会看到类似这样的内容:
d3.json("graphdata1.json", createMyGraph);
您可以改为使用字符串变量来引用文件名并根据需要修改它:
var graphFilename = "defaultGraph.json";
// Some kind of logic gets a different filename from a selector resulting in something like
graphFilename = "newGraphData.json";
d3.json(graphFilename, createMyGraph);
如果您想将绘制的图形转换为另一个图形,这是一个更复杂的过程(和一个不同的问题),涉及 .enter()
和 .exit()
以及更新行为。
我有一个力定向图,当它运行时,我希望能够更改读取的 JSON 文件,从而更改 data/force 定向图。
我可以通过更改文件名在 HTML 中更改它,但我希望异步执行此操作。
我看过 AJAX
和 XHR (XMLHttpRequest)
但我不知道从哪里开始
如评论中所述,这是一个宽泛的问题,因此这里有一个宽泛的答案:如果您使用的是 d3.json
,那么您可能会看到类似这样的内容:
d3.json("graphdata1.json", createMyGraph);
您可以改为使用字符串变量来引用文件名并根据需要修改它:
var graphFilename = "defaultGraph.json";
// Some kind of logic gets a different filename from a selector resulting in something like
graphFilename = "newGraphData.json";
d3.json(graphFilename, createMyGraph);
如果您想将绘制的图形转换为另一个图形,这是一个更复杂的过程(和一个不同的问题),涉及 .enter()
和 .exit()
以及更新行为。