D3.js 绘制D3矩形
我是D3和JS的初学者。 我试图用一个小的csv文件做一个简单的矩形可视化D3.js 绘制D3矩形,d3.js,D3.js,我是D3和JS的初学者。 我试图用一个小的csv文件做一个简单的矩形可视化 price, units 80.67, 100 80.87, 99 79.34, 47 文件、csv位于同一文件夹中。 我正在使用Python的SimpleHTTPServer在此文件夹中本地提供服务 这是我的代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <tit
price, units
80.67, 100
80.87, 99
79.34, 47
文件、csv位于同一文件夹中。
我正在使用Python的SimpleHTTPServer在此文件夹中本地提供服务
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test Data</title>
<script type="text/javascript" src="../d3/d3.v3.js"></script>
</head>
<body>
<script type="text/javascript">
// load csv from the same directory
d3.csv("test.csv", function (data){
return {
price: +data.price, // convert to number with +
units: +data.units, // convert to number with +
};
var canvas = d3.select("body").append("svg")
.attr("width", 500)
.attr("height", 500)
canvas.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("width", function (d) { return d.price; })
.attr("height", 48)
.attr("y", function (d) { return d.units; })
.attr("fill", "blue");
canvas.selectAll("text")
.data(data)
.enter()
.append("text")
.attr("fill", "white")
.attr("y", function (d) { return d.units + 24; })
.text( function (d) { return d.units;})
});
</script>
</body>
测试数据
//从同一目录加载csv
d3.csv(“test.csv”),函数(数据){
返回{
价格:+data.price,//转换为数字+
单位:+data.units,//用+
};
var canvas=d3.select(“body”).append(“svg”)
.attr(“宽度”,500)
.attr(“高度”,500)
canvas.selectAll(“rect”)
.数据(数据)
.输入()
.append(“rect”)
.attr(“宽度”,函数(d){返回d.price;})
.attr(“高度”,48)
.attr(“y”,函数(d){返回d.units;})
.attr(“填充”、“蓝色”);
canvas.selectAll(“文本”)
.数据(数据)
.输入()
.append(“文本”)
.attr(“填充”、“白色”)
.attr(“y”,函数(d){返回d.units+24;})
.text(函数(d){返回d.units;})
});
我没有收到任何错误,只是一张空白页。
这段代码有什么问题?在回调中要做的第一件事就是返回。之后的任何代码都不会被执行。我指的是
return {
price: +data.price, // convert to number with +
units: +data.units, // convert to number with +
};
应该是这样的
data.forEach(function(d) {
d.price = +d.price;
d.units = +d.units;
});
回调的签名也应该是
function(error,data)
而不是function(data)
我用您的data.forEach和添加的function(error,data)替换了我的报税表。现在我得到一个错误“error:Invalid value for attribute y=“NaN”,html只显示一个矩形而不是三个。哦,是的,谢谢!!检查csv后,我发现逗号和值之间有一个空格:比如:80.67100。删除空间后,我有:80.67100,它现在可以工作了。但我仍然不明白为什么这个空格会导致错误事实上,我想我明白了:这个空格只在csv文件的头一行起作用。应该是价格,单位。如果我像这样放置一个空格:price,units,那么只会显示一个矩形。逗号和值之间有很多空格似乎没有什么影响。可能是因为我正在将字符串转换为值。