Javascript 修改d3.js代码生成静态3d绘图
我正在尝试使用D3创建一个交互式3D绘图,但数据来源于numpy。我在这里找到了一个不错的D3示例: 有谁知道我需要在代码中更改哪些行吗Javascript 修改d3.js代码生成静态3d绘图,javascript,d3.js,data-visualization,Javascript,D3.js,Data Visualization,我正在尝试使用D3创建一个交互式3D绘图,但数据来源于numpy。我在这里找到了一个不错的D3示例: 有谁知道我需要在代码中更改哪些行吗 停止动画 提供我选择的xy数据值 ???在Javascript文件的末尾,替换此行: setInterval( updateData, defaultDuration ); 为此: function waitForX3d(resolve) { if ( x3d.node() && x3d.node().runtime ) { r
???在Javascript文件的末尾,替换此行:
setInterval( updateData, defaultDuration );
为此:
function waitForX3d(resolve) {
if ( x3d.node() && x3d.node().runtime ) {
resolve();
} else {
new Promise(r => setTimeout(r, 100))
.then(() => waitForX3d(resolve));
}
}
// setInterval( updateData, defaultDuration );
new Promise(r => waitForX3d(r))
.then(() => updateData());
更改updateData函数以将数据加载到rows变量中 在Javascript文件的末尾,替换此行:
setInterval( updateData, defaultDuration );
为此:
function waitForX3d(resolve) {
if ( x3d.node() && x3d.node().runtime ) {
resolve();
} else {
new Promise(r => setTimeout(r, 100))
.then(() => waitForX3d(resolve));
}
}
// setInterval( updateData, defaultDuration );
new Promise(r => waitForX3d(r))
.then(() => updateData());
更改updateData函数以将数据加载到rows变量中 最终我意识到rows变量是我需要更改的。我在initializeDataGrid()中修改了它 然后,我将plotData()放在setInterval(updateData,defaultDuration)的位置 现在我可以在交互式3D网格中绘制任何数据集了
@@ -235,11 +234,13 @@ function scatterPlot3d( parent )
function initializeDataGrid() {
var rows = [];
// Follow the convention where y(x,z) is elevation.
+ //EDIT THIS FOR STATIC DATA!!!
for (var x=-5; x<=5; x+=1) {
for (var z=-5; z<=5; z+=1) {
- rows.push({x: x, y: 0, z: z});
+ rows.push({x: x, y: (x+z)/2, z: z});
}
}
+ rows.push({x: 2.5, y: 0, z: 2.5});
return rows;
}
@@ -259,8 +261,5 @@ function scatterPlot3d( parent )
initializeDataGrid();
initializePlot();
- setInterval( updateData, defaultDuration );
+ plotData();
@-235,11+234,13@@function scatterPlot3d(父项)
函数initializeDataGrid(){
var行=[];
//遵循y(x,z)表示高程的约定。
+//编辑此静态数据!!!
对于(var x=-5;x最终我意识到rows变量是我需要更改的
然后,我将plotData()放在setInterval(updateData,defaultDuration)的位置
现在我可以在交互式3D网格中绘制任何数据集了
@@ -235,11 +234,13 @@ function scatterPlot3d( parent )
function initializeDataGrid() {
var rows = [];
// Follow the convention where y(x,z) is elevation.
+ //EDIT THIS FOR STATIC DATA!!!
for (var x=-5; x<=5; x+=1) {
for (var z=-5; z<=5; z+=1) {
- rows.push({x: x, y: 0, z: z});
+ rows.push({x: x, y: (x+z)/2, z: z});
}
}
+ rows.push({x: 2.5, y: 0, z: 2.5});
return rows;
}
@@ -259,8 +261,5 @@ function scatterPlot3d( parent )
initializeDataGrid();
initializePlot();
- setInterval( updateData, defaultDuration );
+ plotData();
@-235,11+234,13@@function scatterPlot3d(父项)
函数initializeDataGrid(){
var行=[];
//遵循y(x,z)表示高程的约定。
+//编辑此静态数据!!!
对于(var x=5),席认为这不完全回答我的问题,但是它是一个很好的洞察力如何使用一个承诺可以与X3D工作。DEF值得一个投票。我认为这不完全回答我的问题,但它是一个很好的洞察如何承诺可以用来工作与X3D。