Javascript D3将数据添加到setInterval()内的数组元素中以绘制分组条形图

Javascript D3将数据添加到setInterval()内的数组元素中以绘制分组条形图,javascript,jquery,arrays,d3.js,Javascript,Jquery,Arrays,D3.js,我更新了D3.js。我需要设计分组条形图使用数组的数据集。为此,我遵循了以下链接。 , 这是我的密码 身体{ 字体:10px无衬线; } .轴线路径, .轴线{ 填充:无; 行程:#000; 形状渲染:边缘清晰; } .酒吧{ 填充:钢蓝; } .x轴路径{ 显示:无; } var interval=setInterval(函数(){ }, 1000); var margin={顶部:20,右侧:20,底部:30,左侧:40}, 宽度=960-margin.left-margin

我更新了D3.js。我需要设计分组条形图使用数组的数据集。为此,我遵循了以下链接。 ,

这是我的密码


身体{
字体:10px无衬线;
}
.轴线路径,
.轴线{
填充:无;
行程:#000;
形状渲染:边缘清晰;
}
.酒吧{
填充:钢蓝;
}
.x轴路径{
显示:无;
}

var interval=setInterval(函数(){
}, 1000);    
var margin={顶部:20,右侧:20,底部:30,左侧:40},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x0=d3.scale.ordinal()
.rangeRoundBands([0,宽度],.1);
var x1=d3.scale.ordinal();
变量y=d3.scale.linear()
.范围([高度,0]);
var color=d3.scale.ordinal()
.范围([“#98abc5”、“#8a89a6”]);
var xAxis=d3.svg.axis()
.比例(x0)
.东方(“底部”);
var yAxis=d3.svg.axis()
.比例(y)
.东方(“左”)
.tick格式(d3.格式(“”);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
风险值数据=[
{TestSuite:“TestSuite1”,True:2,False:5},
{TestSuite:“TestSuite2”,True:6,False:3},
{TestSuite:“TestSuite3”,True:1,False:7},
{TestSuite:“TestSuite4”,True:5,False:2},
{TestSuite:“TestSuite5”,True:2,False:2},
{TestSuite:“TestSuite6”,对:9,错:4}
];    
//x、 域(data.map(函数(d){返回d.letter;}));

对于(var i=0;i,可以将生成条形图或矩形DOM的代码移动到更新块中

类似于小提琴中的代码

var保证金={
前20名,
右:20,,
底数:30,
左:40
},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x0=d3.scale.ordinal()
.rangeRoundBands([0,宽度],.1);
var x1=d3.scale.ordinal();
变量y=d3.scale.linear()
.范围([高度,0]);
var color=d3.scale.ordinal()
.范围([“#98abc5”、“#8a89a6”]);
var xAxis=d3.svg.axis()
.比例(x0)
.东方(“底部”);
var yAxis=d3.svg.axis()
.比例(y)
.东方(“左”)
.tick格式(d3.格式(“”);
var w=宽度+边距.left+边距.right;
var h=高度+边距.top+边距.bottom;
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,w)
.attr(“高度”,h)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
风险值数据=[{
TestSuite:“TestSuite1”,
正确答案:2,
错误:5
}, {
TestSuite:“TestSuite2”,
正确答案:6,
错:3
}, {
TestSuite:“TestSuite3”,
正确答案:1,
错:7
}, {
TestSuite:“TestSuite4”,
正确答案:5,
错误:2
}, {
TestSuite:“TestSuite5”,
正确答案:2,
错误:2
}, {
TestSuite:“TestSuite6”,
对:9,
错:4
}];
var interval=setInterval(函数(){
//在此处添加新数据
数据推送({
TestSuite:“TestSuite”+Math.round(Math.random()*100)+1,
True:Math.round(Math.random()*9)+1,
False:Math.round(Math.random()*9)+1
});
更新();
}, 10000);
//x、 域(data.map(函数(d){返回d.letter;}));
var xg=svg.append(“g”)
.attr(“类”、“x轴”)
.attr(“变换”、“平移(0)”、“高度+”);
var yg=svg.append(“g”)
.attr(“类”、“y轴”);
yg.追加(“文本”)
.attr(“变换”、“旋转(-90)”)
.attr(“y”,6)
.attr(“dy”,“.71em”)
.style(“文本锚定”、“结束”)
.文本(“计数”);
更新();
//此函数将生成条形图
函数更新(){
对于(变量i=0;i
正文{
字体:10px无衬线;
}
.轴路径,.轴线{
填充:无;
行程:#000;
形状渲染:边缘清晰;
}
.酒吧{
填充:钢蓝;
}
.x轴路径{
显示:无;
}

这真的对我很有帮助……谢谢。@cytril,我的图形是在一个div中生成的,这个div的宽度为(屏幕大小)/2。(宽度:50%)。当我运行代码时,它生成了15个测试套件的条形图,然后它停止生成条形图。这是什么原因?(你的回答对生成我的代码非常有帮助,因此我认为你可能知道resson,因为我对D3缺乏了解。如果可以,请给我一个答案。)