<legend id='n4abH'><style id='n4abH'><dir id='n4abH'><q id='n4abH'></q></dir></style></legend>
    1. <small id='n4abH'></small><noframes id='n4abH'>

      <tfoot id='n4abH'></tfoot>

          <bdo id='n4abH'></bdo><ul id='n4abH'></ul>
      1. <i id='n4abH'><tr id='n4abH'><dt id='n4abH'><q id='n4abH'><span id='n4abH'><b id='n4abH'><form id='n4abH'><ins id='n4abH'></ins><ul id='n4abH'></ul><sub id='n4abH'></sub></form><legend id='n4abH'></legend><bdo id='n4abH'><pre id='n4abH'><center id='n4abH'></center></pre></bdo></b><th id='n4abH'></th></span></q></dt></tr></i><div id='n4abH'><tfoot id='n4abH'></tfoot><dl id='n4abH'><fieldset id='n4abH'></fieldset></dl></div>

        使用 RequireJS 加载 plotly 和 D3

        时间:2023-09-30

              <tbody id='LYLnB'></tbody>

              <bdo id='LYLnB'></bdo><ul id='LYLnB'></ul>

              1. <i id='LYLnB'><tr id='LYLnB'><dt id='LYLnB'><q id='LYLnB'><span id='LYLnB'><b id='LYLnB'><form id='LYLnB'><ins id='LYLnB'></ins><ul id='LYLnB'></ul><sub id='LYLnB'></sub></form><legend id='LYLnB'></legend><bdo id='LYLnB'><pre id='LYLnB'><center id='LYLnB'></center></pre></bdo></b><th id='LYLnB'></th></span></q></dt></tr></i><div id='LYLnB'><tfoot id='LYLnB'></tfoot><dl id='LYLnB'><fieldset id='LYLnB'></fieldset></dl></div>
                • <small id='LYLnB'></small><noframes id='LYLnB'>

                  <legend id='LYLnB'><style id='LYLnB'><dir id='LYLnB'><q id='LYLnB'></q></dir></style></legend>
                  <tfoot id='LYLnB'></tfoot>
                • 本文介绍了使用 RequireJS 加载 plotly 和 D3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试使用 RequireJS 在我的 js 代码中加载 plotly 和 d3 库.我试过这个:

                  I am trying to use RequireJS to load the plotly and d3 libraries in my js code. I have tried this:

                  require.config({
                      paths: {
                         d3: '/static/scripts/plotly/dependencies/d3.v3.min',
                         plotly: '/static/scripts/plotly/plotly.min'
                      }
                  }); 
                  require(['d3'], function(d3) {
                      d3();
                  }); 
                  require(['plotly'], function(plotly) {
                      plotly();
                  });    
                  

                  但这不起作用.当我的 js 函数被调用时,我得到:

                  But this doesn't work. When my js function is called I get:

                  Uncaught ReferenceError: plotly is not defined
                  Uncaught ReferenceError: Plotly is not defined
                  Uncaught ReferenceError: d3 is not defined
                  Uncaught TypeError: d3 is not a function
                  

                  在这种情况下使用 RequireJS 的正确方法是什么?

                  What is the proper way to use RequireJS in this situation?

                  使用当前版本的代码更新帖子,仍然无法正常工作.

                  Updating post with current version of code, still not working.

                  在调用脚本中我现在有这个:

                  In the calling script I have this now:

                  require.config({
                      paths: {
                          heatmap: '/static/scripts/heatmap',
                          d3: '/static/scripts/plotly/dependencies/d3.v3.min',
                          plotly: '/static/scripts/plotly/plotly.min',
                      }
                  });
                  require(['d3', 'plotly', 'heatmap'], function(d3, plotly, heatmap) {
                      generate_heatmap();
                  });
                  

                  它失败了:

                  Uncaught ReferenceError: Plotly is not defined(anonymous function) @ plotly.min.js:17
                  

                  函数 Plotly(大写 P)在 plotly.min.js 中定义.我必须在某处添加对该函数的引用吗?

                  The function Plotly (upper case P) is defined in plotly.min.js. Do I have to add some reference to that function somewhere?

                  推荐答案

                  Plotly 需要一个 shim,因为它依赖于 D3,根据 Plotly 文档,看起来还需要 jQuery.您的配置应如下所示:

                  You need a shim for Plotly since it depends on D3, and according to the Plotly docs, it looks like jQuery is also needed. Your config should look like:

                  /*
                  main.js file
                  */
                  require.config({
                    paths: {
                      d3: '/static/scripts/plotly/dependencies/d3.v3.min',
                      jquery: '/path/to/jquery',
                      plotly: '/static/scripts/plotly/plotly.min'
                    },
                  
                    shim: {
                      plotly: {
                        deps: ['d3', 'jquery'],
                        exports: 'plotly'
                      }
                    }
                  });
                  
                  require(['d3', 'plotly'], function(d3, plotly) {
                    console.log(plotly); // Object {Lib: Object, util: Object...}
                    console.log(d3); // Object {version: "3.5.6", behavior: Object...}
                  });
                  

                  在您的 index.html 中,您应该只有一个脚本标签:

                  In your index.html you should have only a single script tag:

                  <script data-main="main" src="/path/to/require/folder/require.js"></script>
                  

                  如果你想在另一个使用 require 的 JS 文件中使用 D3 和 Plotly,那么你应该使用 AMD 样式:

                  If you want to use D3 and Plotly in another JS file that uses require then you should be using the AMD style:

                  /*
                  foo-bar.js
                  */
                  define(['d3', 'plotly'], function(d3, plotly) {
                      var foo = {};
                  
                      function bar() {
                         // Some code here...
                      }
                  
                      // This will allow other modules to use
                      // the foo object and the bar function.
                      return fooBar {
                          foo: foo,
                          bar: bar
                      }
                  });
                  

                  现在,您可以在另一个模块中使用 foo-bar.js(假设两个文件位于同一目录级别):

                  Now, you can use foo-bar.js in another module (assuming the two files are on the same directory level):

                  define(['./foo-bar'], function(fooBar) {
                      console.log(fooBar.foo) // Object
                      console.log(fooBar.bar) // function() {}
                  });
                  

                  这篇关于使用 RequireJS 加载 plotly 和 D3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:情节上任何地方的情节点击事件 下一篇:在 R Shiny 中更改一个 plotly scatter3d 中的一个点

                  相关文章

                  <i id='9fBIX'><tr id='9fBIX'><dt id='9fBIX'><q id='9fBIX'><span id='9fBIX'><b id='9fBIX'><form id='9fBIX'><ins id='9fBIX'></ins><ul id='9fBIX'></ul><sub id='9fBIX'></sub></form><legend id='9fBIX'></legend><bdo id='9fBIX'><pre id='9fBIX'><center id='9fBIX'></center></pre></bdo></b><th id='9fBIX'></th></span></q></dt></tr></i><div id='9fBIX'><tfoot id='9fBIX'></tfoot><dl id='9fBIX'><fieldset id='9fBIX'></fieldset></dl></div>
                • <tfoot id='9fBIX'></tfoot>

                  <small id='9fBIX'></small><noframes id='9fBIX'>

                • <legend id='9fBIX'><style id='9fBIX'><dir id='9fBIX'><q id='9fBIX'></q></dir></style></legend>

                      • <bdo id='9fBIX'></bdo><ul id='9fBIX'></ul>