D3.js 解析y属性时出现意外值
我在这里的某个地方发现了错误:D3.js 解析y属性时出现意外值,d3.js,D3.js,我在这里的某个地方发现了错误: d3.csv("Sales Export Friendly 2-14-2017.csv", function(data) { var sales = [] sales = data.map(function(d) { return [ +d["BookingID"], +d["Total Paid"] ]; }); var x = d3.scaleBand() .domain(sales.map(functio
d3.csv("Sales Export Friendly 2-14-2017.csv", function(data) {
var sales = []
sales = data.map(function(d) { return [ +d["BookingID"], +d["Total Paid"] ]; });
var x = d3.scaleBand()
.domain(sales.map(function(sale){ return sale.bookingID; }))
.range([0, width])
.paddingInner([0.1])
var y = d3.scaleLinear()
.range([height, 0])
.domain([0, d3.max(sales.map(function(sale){ return sale['Total Paid']; }))]);
我认为这与第一个映射有关,我认为它返回一个数字数组。正如您所知,sales是一个数组数组,它不包含任何对象
尽管如此,它应该是:
x.domain(sales.map(function(sale){ return sale[0]; }));
//index of the element in the inner array------^
以及:
下面是一个使用这些伪造数据的演示:
bookingID,totalPaid
1,23
2,19
3,42
4,61
5,22
var data=d3.csvParsed3.selectcsv.text;
var sales=data.mapfunctiond{return[+d.bookingID,+d.totalPaid];};
变量x=d3.缩放带
.domainsales.mapfunctionsale{退货销售[0];};
变量y=d3.scaleLinear
.domain[0,d3.maxsales,functionsale{return sale[1];}];
console.logx缩放域:+x.domain;
console.logic标度域:+y.domain;
前{
显示:无;
}
预订ID,全部已支付
1,23
2,19
3,42
4,61
5,22你能解释一下代码中的csvParse部分吗?当我尝试将d3.csv改为您编写的内容时,我发现xxxx.csv不是选择器。我确实设法进一步坚持了我的原始代码,但对x和y变量使用了sale[0]和sale[1]。然后它显示了轴的标签,但条形图没有显示,我得到了与y属性错误相同的意外值。忽略d3.csvParse,我使用它是因为我无法在堆栈片段中使用d3.csv。就像我说的那样改变域名。如果您在修复天平后仍有问题,则意味着您还有其他问题。在这种情况下,请用新问题发布另一个问题。
bookingID,totalPaid
1,23
2,19
3,42
4,61
5,22