我正在尝试构建一个使用和htmlwidget
制作条形图的简单程序。我已经用我的代码设置了一个 gitHub,并将一个带有必要命令的 markdown 文件放在一起,以便在创建小部件时重新创建我的工作流程。我不确定我是否有语法错误,或者只是我的流程有问题?D3
R
我问是因为虽然代码运行,但它不会在 RStudio 的查看器中生成输出图像。我希望也许有经验的人可以D3
帮助htmlwidgets
我找出问题所在。任何见解总是不胜感激。JavaScript
R
谢谢你,内森
链接:https ://github.com/ngfrey/d3BarGraph
更新:我有...
- 从 GitHub 安装了最新版本的 HTMLWidgets
- 修复了我的 D3 库不是真正的 JavaScript 文档的问题。好捕捉及时组合
- 尝试创建此项目作为最小示例,但是,我不知道如何进一步最小化我的 d3BarGraph JavaScript 文件。
- 感谢timingportfolio,我认为问题出在d3BarGraph.js 文件中。
- 具体来说,我如何将数据绑定到实例。在 HTMLWidgets.widget() 函数的 renderValue 部分中。
- 在 RStudio 的查看器面板中右键单击时,我看不到检查元素的选项。这是否意味着没有任何东西被退回?
- 我在下面发布了我怀疑的代码。
- 再次感谢大家花时间提供帮助
- 从 GitHub 安装了最新版本的 HTMLWidgets
这是我的代码的 HTMLWidgets.widget 部分。
HTMLWidgets.widget({
name: 'd3BarGraph',
type: 'output',
//renderOnNullValue: true,
initialize: function(el, width, height) {
var svg = d3.select(el).append("svg");
svg
.attr("width", width)
.attr("height", height);
//create barD3 instance
return barD3().width(width).height(height).svg(svg); //passing the svg obj & options to the barD3 function.
},
resize: function(el, width, height, instance) {
//var svg = instance.svg;
var svg = d3.select(el).select("svg");
svg
.attr('width', width)
.attr('height', height);
instance.width(width).height(height).svg(svg).resize();
},
renderValue: function(el, params, instance) {
// instance.lastValue = params;
var data = HTMLWidgets.dataframeToD3(params.data);
instance=instance.svg(svg).data(data);
//var data = [8,16,10,18,19,4,12,18,12,11,19,11,15,13,5];
d3.select(el)
.call(instance);
//Time for the barD3 function
return barD3().width(width).height(height).svg(svg);
}
});
我还更新了我的 GitHub 项目。我很想听听人们的评论。最佳,NF