r2d3
的JavaScript控制台输出直接呈现到RStudio查看器可视化中,而不是javascript控制台中。参见documentation。
这似乎也是
时的行为 r2d3::r2d3(..., viewer = 'browser')
即console.log()
甚至在浏览器中也不会输出到控制台。
是否存在一种干净的方法来更改此行为,以便将console.log()
D3.js中的r2d3
信息发送到浏览器控制台?
答案 0 :(得分:2)
R2D3覆盖包含可视化代码的影子DOM中的控制台。这就是为什么更改控制台行为的原因-看起来不错,但不允许更仔细地检查对象或隐藏控制台。
在创建可视化文件时,似乎没有任何参数可以修改此参数。留下两个选项,修改包或向可视化添加一行javascript。我将与后者一起去。
文档窗口本身仍然保留默认的控制台行为,因此我们可以使用它来重新定义影子DOM控制台行为。在可视化中,在第一行添加:
console = d3.window(svg.node()).console;
还有其他访问窗口的方法,但这应该足够了,可能是最短的,它不适用于d3v3,可以使用:
console = svg.node().ownerDocument.defaultView.console;
是的,这不是理想的选择,但有点笨拙,但肯定比更改R源(在更新软件包时继续这样做)要容易得多。