Javascript 如何使用json数据在d3.js中创建垂直分组条形图?

Javascript 如何使用json数据在d3.js中创建垂直分组条形图?,javascript,d3.js,nvd3.js,Javascript,D3.js,Nvd3.js,在一个web应用程序中,我应该使用d3.js和json数据创建一个垂直分组的条形图。之前,我使用以下代码创建了一个水平分组条。有人能帮我吗?提前谢谢 var数据={ 标签:[ “弹性”、“可维护性”、“可访问性”, “正常运行时间”、“功能”、“影响” ], 系列:[ { 标签:“2012”, 值:[4,8,15,16,23,42] }, { 标签:“2013年”, 值:[12,43,22,11,73,25] }, { 标签:“2014年”, 值:[31,28,14,8,15,21] },]

在一个web应用程序中,我应该使用d3.js和json数据创建一个垂直分组的条形图。之前,我使用以下代码创建了一个水平分组条。有人能帮我吗?提前谢谢

var数据={
标签:[
“弹性”、“可维护性”、“可访问性”,
“正常运行时间”、“功能”、“影响”
],
系列:[
{
标签:“2012”,
值:[4,8,15,16,23,42]
},
{
标签:“2013年”,
值:[12,43,22,11,73,25]
},
{
标签:“2014年”,
值:[31,28,14,8,15,21]
},]
};
var chartWidth=300,
杆高=20,
groupHeight=barHeight*data.series.length,
组间间隙=10,
spaceForLabels=150,
spaceForLegend=150;
//将系列数据压缩在一起(第一个值、第二个值等)
var-zippedData=[];

对于(var i=0;i在不断挖掘之后,我找到了正确的方法。感谢Mike Bostock在中提供的示例。在中,您还可以找到该示例的详细讨论。感谢您的支持:)


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”、“7b6888”、“6b486b”、“a05d56”、“d0743c”、“ff8c00”);
var xAxis=d3.svg.axis()
.比例(x0)
.东方(“底部”);
var yAxis=d3.svg.axis()
.比例(y)
.东方(“左”)
.tick格式(d3格式(“.2s”);
//控制台。日志(页边距。左侧);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
/*我们的json对象是[{字母:“A”,频率:.08167,深度:.32},{字母:“B”,频率:.01492,深度:.69}]
要使用csv文件,您只需遵循我提供的链接
*/
风险值数据=[
{字母:“A”,频率:.08167,深度:.32},
{字母:“B”,频率:.01492,深度:.69}
];
var groupNames=d3.keys(数据[0]).filter(函数(键){返回键!=“字母”})
data.forEach(函数(d){
d、 groups=groupNames.map(函数(名称){return{name:name,value:+d[name]};})
});
域(data.map(函数(d){返回d.letter;}));
x1.域名(组名).rangeRoundBands([0,x0.rangeBand()]);
y、 域([0,d3.max(数据,函数(d)){
返回d3最大值(d组,函数(d){
返回d值;
});
})]);
svg.append(“g”)
.attr(“类”、“y轴”)
.呼叫(yAxis)
.append(“文本”)
.attr(“变换”、“旋转(-90)”)
.attr(“y”,6)
.attr(“dy”,“.71em”)
.style(“文本锚定”、“结束”)
.text(“信趣”);
var state=svg.selectAll(“.state”)
.数据(数据)
.enter().append(“g”)
.attr(“类别”、“g”)
.attr(“transform”,函数(d){return”translate(“+x0(d.letter)+”,0)”;});
state.selectAll(“rect”)
.data(函数(d){返回d.groups;})
.enter().append(“rect”)
.attr(“宽度”,x1.rangeBand())
.attr(“x”,函数(d){返回x1(d.name);})
.attr(“y”,函数(d){返回y(d.value);})
.attr(“高度”,函数(d){返回高度-y(d.value);})
.style(“fill”,函数(d){返回颜色(d.name);});

是否使用顶部声明的数据
bar-data.csv
data
数组作为要在此图表中显示的数据?否,我没有使用bar-data.csv。我正在使用数据数组。您共享的上述代码段需要一个
bar data.csv
。请将其编辑为水平条形图的工作示例。我在下一行声明数据变量<代码>变量数据=[{“Upazila”:“Tangail”,“Progress”:95.23},{“Upazila”:“Barisal”,“Progress”:85.23},{“Upazila”:“Habiganj”,“Progress”:75.23}]是bar-data.csv格式吗?很抱歉我在帖子中犯了错误。我在这里粘贴了错误的代码片段。我刚编辑过。给您带来不便,很抱歉。