D3.js 如何在主干视图中包含多个D3图表?
如何在主干视图中包含多个D3(可重用)图表 代码示例试图在主干视图(_视图)中呈现图表函数(chart()) 通过该示例,您可以看到:D3.js 如何在主干视图中包含多个D3图表?,d3.js,backbone.js,D3.js,Backbone.js,如何在主干视图中包含多个D3(可重用)图表 代码示例试图在主干视图(_视图)中呈现图表函数(chart()) 通过该示例,您可以看到: 多个图表是可能的 类名在控制台中呈现,但不使用图表函数呈现 当使用“chart”类名调用函数时,将显示图表的匹配数量(来自JSON对象) 在_view.render中调用图表函数时,预期输出为: 每个图表显示在以模型id作为div类名的div中。以下是模板: <div class="b <%= id %>"></div>
- 多个图表是可能的
- 类名在控制台中呈现,但不使用图表函数呈现
- 当使用“chart”类名调用函数时,将显示图表的匹配数量(来自JSON对象)李>
- 每个图表显示在以模型id作为div类名的div中。以下是模板:
<div class="b <%= id %>"></div>
据我所知,在视图实际附加到带有类“a”的div之前,调用了chart函数。我做了一些编辑(搜索edit_comments文本),当我运行代码段时,它似乎可以工作将D3图表添加到主干模板 .酒吧{ 填充:绿色; } .安讯士{ 字体:10px无衬线; } .轴线路径, .轴线{ 填充:无; 行程:#000; 形状渲染:边缘清晰; } .x轴路径{ 显示:无; } 标题: 正文:
//图表函数 函数图(类名){ var margin={顶部:20,右侧:20,底部:30,左侧:40}, 宽度=100-边距。左侧-边距。右侧, 高度=200-margin.top-margin.bottom; var x=d3.scale.ordinal().rangeRoundBands([0,宽度],100); 变量y=d3.scale.linear().range([height,0]); var xAxis=d3.svg.axis() .比例(x) .东方(“底部”); var yAxis=d3.svg.axis() .比例(y) .东方(“左”) .勾号(5,“%”); var svg=d3.select(className).append(“svg”) .attr(“宽度”,宽度+边距。左侧+边距。右侧) .attr(“高度”,高度+边距。顶部+边距。底部) .附加(“g”) .attr(“转换”、“平移”(+margin.left+)、“+margin.top+”); x、 域名(“a”); y、 域([0,1]); svg.append(“g”) .attr(“类”、“x轴”) .attr(“变换”、“平移(0)”、“高度+”) .呼叫(xAxis); svg.append(“g”) .attr(“类”、“y轴”) .呼叫(yAxis); svg.selectAll(“.bar”) .数据([20]) .enter().append(“rect”) .attr(“类”、“条”) .attr(“x”,10) .attr(“宽度”,20) .attr(“y”,48) .attr(“高度”,100); } //多个图表是可能的 图表(“图表”); 图表(“图表”); //模型 _model=Backbone.model.extend({ 默认值:{ 标题:空, 正文:空 } }); //收藏 _collection=Backbone.collection.extend({ 模型:_模型, 网址:'http://jsonplaceholder.typicode.com/posts/' }); //此url的属性包括userId、id、title和body //看法 _view=Backbone.view.extend({ 标记名:“div”, 类名:“容器”, 模板:35;.template($('#template').html()), render:function(){ /*edit_comments-chartClassName用于附加到DOM的“_视图”*/ this.chartClassName=“.b_”+this.model.attributes.id;/*编辑注释-在类名字符串concat中添加了“b_”*/ this.el.html(this.template(this.model.attributes)); //日志图表类名 log(this.chartClassName); //图表(chartClassName); 归还这个; } }); //看法 _View=Backbone.View.extend({ el:“.a”, 初始化:函数(){ this.collection=new_collection(); 这是我的收藏({ 重置:正确 }); 这个。render(); this.listenTo(this.collection,'reset',this.render); }, render:function(){ 此.集合.每个(功能(项){ 这是一份报告(项目); },这个); }, renderA:功能(项目){ var\u视图=新视图({ 型号:项目 }); 这个.el.append(u View.render().el); 图表(_View.chartClassName);/*编辑注释-将视图添加到DOM后调用图表*/ } }); 新的_视图()代码>
据我所知,在视图实际附加到带有类“a”的div之前,调用了chart函数。我做了一些编辑(搜索edit_comments文本),当我运行代码段时,它似乎可以工作将D3图表添加到主干模板 .酒吧{ 填充:绿色; } .安讯士{ 字体:10px无衬线; } .轴线路径, .轴线{ 填充:无; 行程:#000; 形状渲染:边缘清晰; } .x轴路径{ 显示:无; } 标题: 正文:
//图表函数 函数图(类名){ var margin={顶部:20,右侧:20,底部:30,左侧:40}, 宽度=100-边距。左侧-边距。右侧, 高度=200-margin.top-margin.bottom; var x=d3.scale.ordinal().rangeRoundBands([0,宽度],100); 变量y=d3.scale.linear().range([height,0]); var xAxis=d3.svg.axis() .比例(x) .东方(“底部”); var yAxis=d3.svg.axis() .比例(y) .东方(“左”) .勾号(5,“%”); var svg=d3.select(className).append(“svg”) .attr(“宽度”,宽度+边距。左侧+边距。右侧) .attr(“高度”,高度+边距。顶部+边距。底部) .附加(“g”) .attr(“转换”、“平移”(+margin.left+)、“+margin.top+”); x、 域名(“a”); y、 域([0,1]); svg.append(“g”) .attr(“类”、“x轴”) .attr(“变换”、“平移(0)”、“高度+”) .呼叫(xAxis); svg.append(“g”) .attr(“类”、“y轴”) .呼叫(yAxis); svg.selectAll(“.bar”) .数据([20]) .enter().append(“rect”) .attr(“类”、“条”) .attr(“x”,10) .attr(“宽度”,20) .attr(“y”,48) .attr(“高度”,100); } //多个图表是可能的 图表(“图表”); 图表(“图表”); //模型 _model=Backbone.model.extend({ 默认值:{ 标题:空, 正文:空 } }); //收藏 _collection=Backbone.collection.extend({ 模型:_模型, 网址:'http://jsonplaceholder.typicode.com/posts/' }); //p