【发布时间】:2017-10-15 01:50:17
【问题描述】:
我正在尝试创建一个散点图,当我的轴被渲染时,我看不到任何圆圈。我不知道出了什么问题。
我意识到我的数据值是字符串,所以我使用了“+”运算符。还是不行。 没有错误信息。我可以看到调试窗口中的元素正在创建,但它们没有显示出来。
这是我的代码:
function visualize(data) {
var margin = { top: 20, bottom: 80, right:50, left: 70 };
var width = 720 - margin.left + margin.right, height = 500 - margin.top - margin.bottom;
var svg = d3.select("body")
.append("svg")
.attr("height", height + margin.top + margin.bottom)
.attr("width", width + margin.right + margin.left);
g=svg.append("g")
.attr("transform","translate("+margin.left+","+margin.top+")");
var xScale = d3.scaleLinear().domain(d3.extent(data,function(d) {
return +d.FTAG;
})).range([0, width]);
var yScale = d3.scaleLinear().domain([0,d3.max(data,function(d) { return +d["AF"]; })]).range([height, 0]);
var xAxis = d3.axisBottom(xScale);
var yAxis = d3.axisLeft(yScale);
g.append("g").attr("class", "x-axis").attr("transform", "translate(0," + height + ")").call(xAxis);
g.append("g").attr("class", "y-axis").attr("transform", "translate(0,0)").call(yAxis);
d3.selectAll("dot").data(data)
.enter()
.append("g")
.append("circle")
.attr("r", 20)
.attr("cx",
function(d) {
return xScale(+d.FTAG);
})
.attr("cy",
function(d) {
return yScale(+d.AF);
})
.style("fill",
function(d) {
if (+d.AF >= 20) {
return "red";
} else
return "steelblue";
})
.style("stroke","black")
.style("stroke-width",1.5);
}
【问题讨论】:
-
你的
data在哪里?你必须发MCVE,否则很难帮助你。 -
它是 tsv 格式。本地主机。
-
这些信息有什么帮助?请阅读我上面链接的页面。
-
调试时,我可以看到我的数据正在加载。使用 d3 v4。
标签: javascript d3.js svg data-visualization