Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修改d3.js代码生成静态3d绘图_Javascript_D3.js_Data Visualization - Fatal编程技术网

Javascript 修改d3.js代码生成静态3d绘图

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

我正在尝试使用D3创建一个交互式3D绘图,但数据来源于numpy。我在这里找到了一个不错的D3示例:

有谁知道我需要在代码中更改哪些行吗

  • 停止动画
  • 提供我选择的xy数据值

  • ???

    在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。