我正在尝试构建一个使用htmlwidget
和D3
制作条形图的简单R
。我已经使用我的代码设置了一个gitHub,并将一个markdown文件与必要的命令放在一起,以便在创建窗口小部件时重新创建我的工作流程。我不确定我是否有语法错误,或者我的流程一般都有问题?
我问,因为虽然代码运行,但它不会在RStudio的查看器中产生输出图像。我希望也许有D3
,htmlwidgets
,JavaScript
和R
经验的人可以帮我弄清楚这有什么问题。任何见解总是非常感激。
谢谢你, 森
链接:https://github.com/ngfrey/d3BarGraph
更新:我有......
这是我的代码的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
答案 0 :(得分:0)
我能够解决这个问题。我在GitHub上发布了一个工作版本。对我来说最大的帮助就是离开这个项目的时间。我还使用了更多来自jcheng5泡泡示例的“锅炉板”类型代码。有关代码,请参阅Working_Project链接。
再次感谢大家分享您的想法和帮助。最好的,NF