Javascript D3.js-无法读取属性';轴';未定义的
以下是我的代码片段:Javascript D3.js-无法读取属性';轴';未定义的,javascript,d3.js,Javascript,D3.js,以下是我的代码片段: var xScale = d3.scaleLinear().range([MARGINS.left, WIDTH - MARGINS.right]).domain([scaleMin, scaleMax]); var yScale = d3.scaleLinear().range([HEIGHT - MARGINS.top, MARGINS.bottom]).domain([minValue,maxValue+numberOfSignals*300]); xAxis =
var xScale = d3.scaleLinear().range([MARGINS.left, WIDTH - MARGINS.right]).domain([scaleMin, scaleMax]);
var yScale = d3.scaleLinear().range([HEIGHT - MARGINS.top, MARGINS.bottom]).domain([minValue,maxValue+numberOfSignals*300]);
xAxis = d3.svg.axis().scale(xScale);
yAxis = d3.svg.axis().scale(yScale).orient("left");
vis.append("svg:g")
.attr("transform", "translate(0," + (HEIGHT - MARGINS.bottom) + ")")
.call(xAxis);
vis.append("svg:g")
.attr("transform", "translate(" + (MARGINS.left) + ",0)")
.call(yAxis);
这是我的密码。但每次运行它时,我都会得到错误“plot:91 uncaughttypeerror:cannotreadproperty'axis'of undefined”。
问题是它以前是有效的。有更新吗?
谢谢 对于版本4
它必须是:
var xScale = d3.scaleLinear().range([MARGINS.left, WIDTH - MARGINS.right]).domain([scaleMin, scaleMax]);
var yScale = d3.scaleLinear().range([HEIGHT - MARGINS.top, MARGINS.bottom]).domain([minValue,maxValue+numberOfSignals*300]);
var xAxis = d3.axisBottom()
.scale(xScale);
var yAxis = d3.axisLeft()
.scale(yScale);
而不是下面的代码(将在版本3中使用):
您使用的是哪一个版本的d3?最新版本-4.1.1使用第3版它可以工作。您使用的API是针对第3版的。问题是您使用的是多种多样的东西。这一行将在d3 v4
xScale=d3.scaleLinear()
这一行将在d3 v3d3.svg.axis().scale(xScale)
上工作,因此我建议请正确选择您的版本。嘿,西里尔,我正在编辑问题以添加d3v4标记,我刚刚意识到其中有两个。。。你有足够的RP使它们成为同义词吗?没有@GerardoFurtado我没有RP来做它。@GerardoFurtado我只知道d3v4。你还看到了什么标记?有一个名为d3.js-v4
,只标记了两个问题。当我从v3移动到v5时,它对我有效。很好!谢谢
xAxis = d3.svg.axis().scale(xScale);
yAxis = d3.svg.axis().scale(yScale).orient("left");