Javascript D3.js通过修改的Lee Byron传递CSV';堆叠到分组条形图示例中的s测试算法生成器

Javascript D3.js通过修改的Lee Byron传递CSV';堆叠到分组条形图示例中的s测试算法生成器,javascript,d3.js,Javascript,D3.js,我使用的是d3.js。我修改了示例的随机数据生成器。现在它没有正确读取我的csv文件 最终的图表将有: x轴由日期确定 y轴由小时*或周或月确定 *我几个小时的命名约定是“dnh” 代码如下。谢谢你的帮助!: var数据=[]; var-dataByDay=[]; d3.csv('data/friday.csv',函数(myData){ //console.log(myData); 返回{ 日期:myData.date, dnh:+myData.dnh }; },函数(myData){ dat

我使用的是d3.js。我修改了示例的随机数据生成器。现在它没有正确读取我的csv文件

最终的图表将有:
x轴由日期确定
y轴由小时*或周或月确定

*我几个小时的命名约定是“dnh”

代码如下。谢谢你的帮助!:

var数据=[];
var-dataByDay=[];
d3.csv('data/friday.csv',函数(myData){
//console.log(myData);
返回{
日期:myData.date,
dnh:+myData.dnh
};
},函数(myData){
data=myData;
//console.log(myData[0]);
});
函数doBarChart(){
var n=4,//层数
m=30,//每层的样本数(m将等于我的x值(时间))
stack=d3.layout.stack(),
层=堆栈(d3.range(n).map(function(){
返回层(m,.1);
})),
yGroupMax=d3.max(层、函数(层){
返回d3.max(层,函数(d){
返回d.y;
});
}),//分组传递y数据值的算法
yStackMax=d3.max(层、函数(层){
返回d3.max(层,函数(d){
返回d.y0+d.y;
});
});//堆叠通过y值的算法
var保证金={
前40名,
右:10,,
底数:20,
左:10
},//“画布”设置
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x=d3.scale.ordinal()//rangeBands/rangeBand的设置(将值拟合到我们拥有的画布宽度)
.域(d3.范围(m))
.rangeRoundBands([0,宽度],.08);//检查对rangeRound行为的引用
var y=d3.scale.linear()//注意:不需要更改为时间刻度。unix已被转换&t=0-29
.domain([0,yStackMax])
.range([height,0]);//问题:0的值是多少?它是否在x=0时重新调整堆栈大小?
var color=d3.scale.linear()
.domain([0,n-1])
.范围([“#aad”、“#556”]);
var xAxis=d3.svg.axis()//定义x轴,将其定位为底部(x),而不是左侧(y)
.scale(x)//通过顺序比例传递x值
.1.1尺寸(0)
.1(6)
.东方(“底部”);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
var layer=svg。选择所有(“.layer”)/!!层=?
.data(layers)//通过数据库的层
.enter().append(“g”)//添加图形
.attr(“类”、“层”)//此处应用selectAll
.样式(“填充”,功能(d,i){
返回颜色(i);
});//澄清:i=数据索引
var rect=layer.selectAll(“rect”)//rect=actual bars
.数据(功能(d){
返回d;
})
.enter().append(“rect”)
.attr(“x”,函数(d){
返回x(d.x);
})
.attr(“y”,高度)
.attr(“宽度”,x.rangeBand())
.attr(“高度”,0);
//----------------------------------------------------------------测试工具提示fx
//var tooltip=d3。选择('body')。追加('div'))
//.style('位置','绝对')
//.style('padding','0 10px')
//.style('背景','白色')
//.style('opacity',0)
// ---------------------------------------------------------------------------------------------------------
rect.transition()
.延迟(功能(d,i){
返回i*10;
})
.attr(“y”,函数(d){
返回y(d.y0+d.y);
})
.attr(“高度”,功能(d){
返回y(d.y0)-y(d.y0+d.y);
});
svg.append(“g”)
.attr(“类”、“x轴”)
.attr(“变换”、“平移(0)”、“高度+”)
.呼叫(xAxis);
d3.选择全部(“输入”)。打开(“更改”,更改);
var timeout=setTimeout(函数(){
d3.选择(“输入[值=\”分组\“]”)。属性(“选中”,为真)。每个(更改);
}, 2000);
函数更改(){
clearTimeout(超时);
if(this.value==“grouped”)transitionGrouped();
else transitionStacked();
}
//-------------------------------------------------------------过渡外汇:分组+堆叠
函数transitionGroup(){
y、 域([0,yGroupMax]);
rect.transition()
.持续时间(500)
.延迟(功能(d,i){
返回i*10;
})
.attr(“x”,函数(d,i,j){
返回x(d.x)+x.rangeBand()/n*j;
})
.attr(“宽度”,x.rangeBand()/n)
.transition()
.attr(“y”,函数(d){
返回y(d.y);
})
.attr(“高度”,功能(d){
返回高度-y(d.y);
});
}
函数transitionStacked(){
y、 域([0,yStackMax]);
rect.transition()
.持续时间(500)
.延迟(功能(d,i){
返回i*10;
})
.attr(“y”,函数(d){
返回y(d.y0+d.y);
})
.attr(“高度”,功能(d){
返回y(d.y0)-y(d.y0+d.y);
})
.transition()
.attr(“x”,函数(d){
返回x(d.x);
})
.attr(“宽度”,x.rangeBand());
}
// ---------------------------------------------------------------------------------------------------------
//!测试:工具提示的鼠标悬停功能!
//工具提示。关于('mouseover'),函数(d){
//tooltip.transition()
//.style('opacity',.9)
//
//html(d)
//.style('left',(d3.event.pageX)+'px')
//.style('top',(d3.event.pageY)+'px')
// }
// ---------------------------------------------------------------------------------------------------------
功能层(n,o){
控制台日志(“打印o”);
变量a=[],
我
对于(i=0;i