Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 堆叠区域图形未渲染_Javascript_Datetime_D3.js - Fatal编程技术网

Javascript 堆叠区域图形未渲染

Javascript 堆叠区域图形未渲染,javascript,datetime,d3.js,Javascript,Datetime,D3.js,我有一个从CSV读取的堆积面积图。但是它不能正确地渲染x轴和图形 我试图更改x轴的值,但没有帮助 下面是示例CSV文件 当前,视图显示值的y轴,右侧显示药物名称,但不显示实际的堆叠图表或日期x轴值 到目前为止,返回x(d.data.date)=返回NaN 非常感谢你的帮助 date,drug,market_share 2016-01-01,insulin lispro,.01 2016-01-01,alogliptin,0.001323754341 2016-01-01,sitagliptin,

我有一个从CSV读取的堆积面积图。但是它不能正确地渲染x轴和图形

我试图更改x轴的值,但没有帮助

下面是示例CSV文件

当前,视图显示值的y轴,右侧显示药物名称,但不显示实际的堆叠图表或日期x轴值

到目前为止,返回x(d.data.date)=返回NaN

非常感谢你的帮助

date,drug,market_share
2016-01-01,insulin lispro,.01
2016-01-01,alogliptin,0.001323754341
2016-01-01,sitagliptin,.01
2016-01-01,canagliflozin,0.02842158621
2016-01-01,glimepiride,0.05668845799
2016-01-01,repaglinide,0.0005768749342
2016-01-01,insulin glargine,.01
2016-01-01,metformin,0.4972895171
2016-01-01,mifepristone,.02
2016-01-01,exenatide,.02
2016-01-01,bromocriptine,0.0002109506723
2016-01-01,pioglitazone,0.02324500184
2016-01-01,metformin hydrochloride,0.392074889
2016-02-01,saxagliptin,.02
2016-02-01,pioglitazone,0.02247815103
2016-02-01,exenatide,0.03
2016-02-01,repaglinide,0.0006204220565
2016-02-01,metformin hydrochloride,0.394153624
2016-02-01,sitagliptin,.08
2016-02-01,insulin lispro,.05
2016-02-01,canagliflozin,0.02907988245
2016-02-01,metformin,0.4933502396
2016-02-01,insulin glargine,.02
2016-02-01,bromocriptine,0.0002076549233
2016-02-01,mifepristone,.02
2016-02-01,alogliptin,0.001364306972
2016-02-01,glimepiride,0.05857620484
2016-03-01,canagliflozin,0.02908102306
2016-03-01,bromocriptine,0.000195238081
2016-03-01,metformin,0.4966376769
2016-03-01,alogliptin,0.00133532899
2016-03-01,insulin glargine,.03
2016-03-01,sitagliptin,.04


var parseDate=d3.timeParse(“%Y-%m-%d”);
函数类型2(d、i、列){
d、 日期=解析日期(d.date);
返回d;
}
函数类型(d、i、列){
d、 日期=解析日期(d.date);
对于(var i=1,n=columns.length;i0.01;
})
.append(“文本”)
.attr(“x”,宽度-6)
.attr(“y”,函数(d){
返回y((d[d.length-1][0]+d[d.length-1][1])/2);
})
.attr(“dy”,“.35em”)
.style(“字体”,“10px无衬线”)
.style(“文本锚定”、“结束”)
.文本(功能(d){
返回d.key;
});
g、 附加(“g”)
.attr(“类”、“轴--x”)
.attr(“变换”、“平移(0)”、“高度+”)
.call(d3.axisBottom(x));
g、 附加(“g”)
.attr(“类”、“轴--y”)
.call(d3.Axisleet(y).ticks(10,“%”);
}
d3.csv(“market_shares.csv”),类型2,功能(错误,数据){
设stackedByDate={}
设drugSet=newset();
让defaultDrugMarketShareProp={};
让newData=[]
data.forEach(函数(项、索引){
药物组。添加(项目。药物);
stackedByDate[item.date]={};
});
让drugNames=[…drugSet];
drugNames.forEach(函数(项,索引){
defaultDrugMarketShareProp[项目]=0;
});
data.forEach(函数(项、索引){
stackedByDate[item.date]=Object.assign({},defaultDrugMarketShareProp);
});
data.forEach(函数(项、索引){
stackedByDate[项目日期][项目药物]=项目市场份额;
});
Object.key(stackedByDate).forEach(函数(key){
哈希={}
散列['date']=键;
Object.key(stackedByDate[key]).forEach(函数(innerKey){
哈希[innerKey]=stackedByDate[key][innerKey]
});
newData.push(散列);
});
newData.columns=药物名称;
newData.columns.unshift('date');
绘图图(错误,新数据,“#div2”,960500);
});

您正确解析了日期字符串。然而,在这个函数中

Object.keys(stackedByDate).forEach(function (key) {
    hash = {}
    hash['date'] = key;//<----- HERE
    Object.keys(stackedByDate[key]).forEach(function (innerKey) {
        hash[innerKey] = stackedByDate[key][innerKey]
    });
    newData.push(hash);
});
以下是仅包含该更改的代码:

Object.keys(stackedByDate).forEach(function (key) {
    hash = {}
    hash['date'] = key;//<----- HERE
    Object.keys(stackedByDate[key]).forEach(function (innerKey) {
        hash[innerKey] = stackedByDate[key][innerKey]
    });
    newData.push(hash);
});
hash['date'] = new Date(key);